Presentation is loading. Please wait.

Presentation is loading. Please wait.

JDBC ソフトウェア特論 第3回.

Similar presentations


Presentation on theme: "JDBC ソフトウェア特論 第3回."— Presentation transcript:

1 JDBC ソフトウェア特論 第3回

2 この講義のWebページ

3 きょうの内容 JDBCのプログラミングの基本を知る。

4 JDBCとは何か? JDBCは、Javaを使ってリレーショナルデータベースを利用するためのAPI。
主に java.sql パッケージと javax.sql パッケージに納められている。

5 JDBCプログラミングの基本パターン データベースとの接続の確立 SQLの実行 SQLの実行結果の処理
Connection オブジェクトを取得 SQLの実行 Statement オブジェクトを取得し、SQL文を実行 SQLの実行結果の処理 ResultSet オブジェクトのデータを取り出す

6 データベースとの接続の確立 (1) 必要な情報とJDBCドライバ
Connection オブジェクトを取得するのが目標 次の情報が必要になる JDBCドライバ データベースの URL データベースにアクセスするユーザ名とパスワード データベース管理システム (DBMS) に固有の処理をまとめたもの

7 データベースとの接続の確立 (2) プログラムの流れ
// JDBCドライバの指定 Class.forName("org.hsqldb.jdbcDriver"); // URL の指定 String url = "jdbc:hsqldb:hsql://localhost"; // Connection オブジェクトを取得 Connection con = DriverManager.getConnection(url, "sa", "");

8 データベースとの接続の確立 (3) Connection オブジェクトの取得方法
JDBCドライバの利用 いちばん一般的な方法 「JNDI」というネームサービスの利用 J2EEでは一般的 Connection Pooling の利用 Connection の取得は「重い」処理なので、あらかじめいくつかのConnection をあらかじめ取得しておいてためておく

9 SQL の実行 (1) 必要なインタフェース Connection を取得したら、次のいずれかのインタフェースを使ってSQLを実行する。
Statement PreparedStatement

10 SQL の実行 (2) Statement を使った例
String select = "select title from books"; // Statement の取得 Statement stmt = con.createStatement(); // SQLの実行 (結果は ResultSet に) ResultSet rs = stmt.executeQuery(select);

11 SQL の実行 (3) PreparedStatement を使った例
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();

12 SQL の実行 (4) PreparedStatement とパラメータ
String insert = "insert into books values( ? , ? , ? , ? , ? , ? )"; ・・・・・・ // 1番目の“?” に対応 st.setString(1, ndc); // 2番目の“?” に対応 st.setString(2, tyosya_hyouji);

13 SQL の実行 (5) データベースの検索と更新
// 検索 (select) の場合 ResultSet rs = stmt.executeQuery(selectStatement); // 更新 (insert, update, delte) の場合 // result には更新された行数が返る int result = prepStmt.executeUpdate();

14 SQLの実行結果の処理 プログラムの流れ // ResultSet には複数の検索結果が返る while (rs.next()) {
// 1行分の検索結果のうち、 // “title” という項目のデータを返す String title = rs.getString("title"); System.out.println(title); }

15 プログラムのコンパイルと実行 実行時にはデータベースが立ち上がっている必要あり。
JDBCドライバが含まれる Jar ファイルを指定する必要あり。 java –classpath %HSQLDB_HOME%\lib\hsqldb.jar;. JDBCTest


Download ppt "JDBC ソフトウェア特論 第3回."

Similar presentations


Ads by Google