Java訓練#42(JavaとDBの連携)
今日の授業
今日はサーブレット(Java)とデータベースの連携について学びました。なのでそれについて解説します。
JDBC
JDBCとは、Javaからデータベースを操作する為のAPIです。APIとは簡単にいうと、誰でも利用できる機能の事です。なのでJDBCにはいくつかの機能があります。
・データベース製品別によるプログラムの記述をなくしてくれる
・Connection・・・データベースとの接続をするインタフェース
・Statemente・・・SQLを発行する為のインタフェース
・PreparedStatement・・・パラメータ付きのSQLを発行する為のインタフェース
・ResultSet・・・クエリ(select文による検索)の結果を保持するクラス
これらの機能を使う事ができます。データベースの接続にはデータソースという仕組みを使います。
データソースとは、アプリケーションサーバーを利用してデータベースに接続する仕組みです。
データソースは「接続情報の管理」を容易にして、「実行速度の性能向上」する事ができます。
データソースを使うには、Tomcat で設定が必要です。
この設定をする事によってデータベースとJavaとが接続する準備が整います。今回は設定方法は省略します。
Javaからデータベースへの接続
Javaでデータベースと接続する為のコードがあり、それを記述する手順があるのでそれを紹介します。
①データベースへの接続
データソースを取得するにはJNDIというデータやオブジェクトを名前で参照する為のAPIを使います。
(1)InitialContextオブジェクトを生成する
コードは次のようになります。
InitialContext ic=new InitialContext();
(2)DataSourceオブジェクトを取得する
これはlookupメソッドでデータソースを取得します。
コードは次のようになります。
DataSource ds=(DataSource)ic.lookup(“java:/comp/env/データソースで設定した名前”);
(3)Connectionオブジェクトを取得する
JDBCで紹介したインタフェースのgetConnectionメソッドを使います。
Connection con=ds.getConnection();
②SQL文の作成と実行
SQL文の作成と実行にはPreparedStatementオブジェクトを使います。その為にはConnectionインタフェースのPrepareStatementメソッドを使います。
このメソッドでデータベースにSQL文を送り引数として使いたいデータベースを取得します。
PreparedStatement st=con.PrepareStatement(“select * from データベース名”);
次にJDBCで紹介したResultSet executeQueryメソッドを使ってSQL文の保持と結果を返します。
ResultSet rs=st.executeQuery();
③結果の取得と必要な処理の実行
ResultSetの変数を使ってSesultSetに保持されてる情報を取り出します。取り出すにはカーソルという仕組みを使います。
カーソルとは現在処理中の行を指定します。
そして中身を取り出すにはnextメソッドとwhile文を使います。
最初にnextメソッドを呼び出すとカーソルは1行目を指します。そしてwlile文で全部の行を取得します。
nextメソッドは次の行が存在しなければfalseになりループが終了します。
カーソルが指してる行の各列の値を取得するにはResultSet の変数を使ってgetStringメソッドやgetIntメソッドで値を取得します。
while(rs.next()) {
out.println(rs.getInt(“int型の値”)); //idなど
out.println(“:”);
out.println(rs.getString(“String型の値”)); //nameなど
out.println(“:”);
out.println(rs.getInt(“int型の値”)); //ageなど
out.println(“<br>”); //1行取得したら改行します。
}
データベースで次のテーブルを作ってたとします。
上のwhile文の処理を行うと以下の様に値を取得し表示します。
1 : 田中 : 25 //while文1回目の処理
2 : 鈴木 : 30 //while文2回目の処理
•
•
④データベースからの切断
データベースに接続してSQL文を使った後は必ずデータベースを切断してConnection オブジェクトを破棄する必要があります。これを行わないと思わぬエラーなどが起きる為必ず行いましょう。
データベースの切断をするにはPreparedStatementオブジェクト、Connectionオブジェクトに対してcloseメソッドを使います。
st.close();
con.close();
まとめ
Javaファイルからデータベースに接続して、データベースの値を取得する手順を紹介しました。
①データベースへの接続
②SQL文の作成と実行
③結果の取得と必要な処理の実行
④データベースからの切断
この順番でJavaでコードを記述していきます。
-¥-¥-¥-¥¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥—¥-¥-¥-¥-¥-
公共職業訓練を受講する為に必要な事を下の記事で書いてます。
良かったらご覧下さい↓↓↓
最後まで読んで頂きありがとうございました。
少しでも勉強になった、役に立ったと思ったら「 サポート」 で貴方のお気持ちを頂けると嬉しいです。
今後の励みにもなります。是非よろしくお願いします。
この記事が気に入ったらサポートをしてみませんか?