JDBC ソフトウェア特論 第3回 この講義のWebページ http://www.wakhok.ac.jp/~tomoharu/tokuron2003/ きょうの内容 JDBCのプログラミングの基本を知る。 JDBCとは何か? JDBCは、Javaを使ってリレーショナルデータベー スを利用するためのAPI。 主に java.sql パッケージと javax.sql パッケージ に納められている。 JDBCプログラミングの基本パターン 1. データベースとの接続の確立 2. SQLの実行 3. Connection オブジェクトを取得 Statement オブジェクトを取得し、SQL文を実行 SQLの実行結果の処理 ResultSet オブジェクトのデータを取り出す データベースとの接続の確立 (1) 必要な情報とJDBCドライバ Connection オブジェクトを取得するのが目標 次の情報が必要になる – – – JDBCドライバ データベースの URL データベースにアクセスするユーザ名とパスワード JDBCドライバ – データベース管理システム (DBMS) に固有の処理をま とめたもの データベースとの接続の確立 (2) プログラムの流れ // JDBCドライバの指定 Class.forName("org.hsqldb.jdbcDriver"); // URL の指定 String url = "jdbc:hsqldb:hsql://localhost"; // Connection オブジェクトを取得 Connection con = DriverManager.getConnection(url, "sa", ""); データベースとの接続の確立 (3) Connection オブジェクトの取得方法 JDBCドライバの利用 – 「JNDI」というネームサービスの利用 – いちばん一般的な方法 J2EEでは一般的 Connection Pooling の利用 – Connection の取得は「重い」処理なので、あらかじめい くつかのConnection をあらかじめ取得しておいてため ておく SQL の実行 (1) 必要なインタフェース Connection を取得したら、次のいずれかのインタ フェースを使ってSQLを実行する。 – – Statement PreparedStatement SQL の実行 (2) Statement を使った例 // SQL文 String select = "select title from books"; // Statement の取得 Statement stmt = con.createStatement(); // SQLの実行 (結果は ResultSet に) ResultSet rs = stmt.executeQuery(select); 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(); SQL の実行 (4) PreparedStatement とパラメータ String insert = "insert into books values( ? , ? , ? , ? , ? , ? )"; ・・・・・・ // 1番目の“?” に対応 st.setString(1, ndc); // 2番目の“?” に対応 st.setString(2, tyosya_hyouji); SQL の実行 (5) データベースの検索と更新 // 検索 (select) の場合 ResultSet rs = stmt.executeQuery(selectStatement); // 更新 (insert, update, delte) の場合 // result には更新された行数が返る int result = prepStmt.executeUpdate(); SQLの実行結果の処理 プログラムの流れ // ResultSet には複数の検索結果が返る while (rs.next()) { // 1行分の検索結果のうち、 // “title” という項目のデータを返す String title = rs.getString("title"); System.out.println(title); } プログラムのコンパイルと実行 実行時にはデータベースが立ち上がっている必要 あり。 JDBCドライバが含まれる Jar ファイルを指定する 必要あり。 java –classpath %HSQLDB_HOME%\lib\hsqldb.jar;. JDBCTest
© Copyright 2024 ExpyDoc