JDBC
J2EE I
第6回 / 2006-01-14
1
今回の内容
JDBCプログラミングの基本パターン
データベースとの接続の確立
SQLの実行
SQLの実行結果の処理
プログラムのコンパイルと実行
2
JDBCプログラミングの
基本パターン
3
JDBCとは何か?
JDBCは、Javaを使ってリレーショナルデー
タベースを利用するためのAPI。
主に java.sql パッケージと javax.sql パッ
ケージに納められている。
4
JDBCプログラミングの
基本パターン
データベースとの接続の確立
SQLの実行
Connection オブジェクトを取得
Statement オブジェクトを取得し、SQL文を実行
SQLの実行結果の処理
ResultSet オブジェクトのデータを取り出す
5
データベースとの接続の確立
6
データベースとの接続の確立 (1)
目標と必要な情報
Connection オブジェクトを取得するのが目標
次の情報が必要になる
JDBCドライバ
データベースの URL
データベースにアクセスするユーザ名とパスワード
7
JDBCドライバ
データベース管理システム (DBMS) に固
有の処理をまとめたもの
通常は、DBMSごとにJarファイルで提供さ
れている
8
データベースとの接続の確立 (2)
プログラムの流れ
// JDBCドライバの指定
Class.forName("org.hsqldb.jdbcDriver");
// URL の指定
String url = "jdbc:hsqldb:hsql://localhost";
// Connection オブジェクトを取得
Connection con =
DriverManager.getConnection(url,"sa", "");
9
データベースとの接続の確立 (3)
Connection の取得方法
JDBCドライバの利用
「JNDI」というネームサービスの利用
いちばん一般的な方法
J2EEでは一般的
Connection Pooling の利用
Connection の取得は「重い」処理なので、あ
らかじめいくつかのConnection をあらかじめ
取得しておいてためておく
10
SQLの実行
11
SQL の実行 (1)
必要なインタフェース
Connection を取得したら、次のいずれか
のインタフェースを使ってSQLを実行する。
Statement
PreparedStatement
12
SQL の実行 (2)
Statement を使った例
// SQL文
String select = "select title from books";
// Statement の取得
Statement stmt = con.createStatement();
// SQLの実行 (結果は ResultSet に)
ResultSet rs = stmt.executeQuery(select);
13
SQL の実行 (3)
PreparedStatement を使った例
// SQL文
String insert = "insert into books
values( ? , ? , ? , ? , ? , ? )";
// SQL文を設定しておく
PreparedStatement st=con.prepareStatement(insert);
// パラメータに値を設定
st.setString(1, ndc); st.setString(2, tyosya_hyouji);
// SQL文を実行 (select文なら executeQuery)
int result = st.executeUpdate(); st.close();
14
SQL の実行 (4)
PreparedStatement とパラメータ
String insert = "insert into books
values( ? , ? , ? , ? , ? , ? )";
・・・・・・
// 1番目の“?” に対応
st.setString(1, ndc);
// 2番目の“?” に対応
st.setString(2, tyosya_hyouji);
15
SQL の実行 (5)
データベースの検索と更新
// 検索 (select) の場合
ResultSet rs =
stmt.executeQuery(selectStatement);
// 更新 (insert, update, delte) の場合
// result には更新された行数が返る
int result = prepStmt.executeUpdate();
16
SQLの実行結果の処理
17
SQLの実行結果の処理
プログラムの流れ
// ResultSet には複数の検索結果
// これをひとつずつ処理する
// 検索結果が10件あれば、ループは10回まわる
while (rs.next()) {
// 1件分の検索結果のうち、
// “title” という項目のデータを返す
String title = rs.getString("title");
System.out.println(title);
}
18
プログラムのコンパイルと実行
19
Jarファイル
J2SEに含まれていないJavaのプログラム
(=クラスファイル)は「Jarファイル」にまとめ
られている。
Jarファイル
拡張子は “.jar”
Zip とほとんど同じフォーマット。つまり圧縮+
アーカイブの機能を持っている。
20
Jarファイルの取り扱い (1)
J2SE 添付の jar コマンドを使う
Jarファイルを作る
jar cvf sample.jar sample¥
sampleフォルダ以下を sample.jar にまとめる
Jarファイルを展開
jar xvf sample.jar
sample.jar を展開(解凍)する
21
Jarファイルの取り扱い (2)
Jarファイルの中身を見てみる
jar tvf sample.jar
sample.jar の中身を見てみる
jar コマンドのオプションは、Unix の tar コ
マンドとほとんど同じ
22
クラスパス
あるプログラムをコンパイル・実行するとき、
J2SE以外のjarファイルを必要とする場合、
classpath オプションで jar ファイルを指定
する
コンパイル
Javac -classpath hoge.jar Test.java
実行
java -classpath hoge.jar;. Test
23
プログラムのコンパイルと実行
実行時にはデータベースが立ち上がって
いる必要あり。
JDBCドライバが含まれる Jar ファイルを指
定する必要あり。
java –classpath
%HSQLDB_HOME%\lib\hsqldb.jar;.
JDBCTest
24
© Copyright 2026 ExpyDoc