見出し画像

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行取得したら改行します。
}

データベースで次のテーブルを作ってたとします。

画像1

上のwhile文の処理を行うと以下の様に値を取得し表示します。

1 : 田中 : 25  //while文1回目の処理
2 : 鈴木 : 30  //while文2回目の処理
     •
     •

④データベースからの切断

データベースに接続してSQL文を使った後は必ずデータベースを切断してConnection オブジェクトを破棄する必要があります。これを行わないと思わぬエラーなどが起きる為必ず行いましょう。
データベースの切断をするにはPreparedStatementオブジェクト、Connectionオブジェクトに対してcloseメソッドを使います。

st.close();
con.close();

まとめ

Javaファイルからデータベースに接続して、データベースの値を取得する手順を紹介しました。

①データベースへの接続
②SQL文の作成と実行
③結果の取得と必要な処理の実行
④データベースからの切断

この順番でJavaでコードを記述していきます。

-¥-¥-¥-¥¥-¥-¥-¥-¥-¥-¥-¥-¥-¥-¥—¥-¥-¥-¥-¥-

公共職業訓練を受講する為に必要な事を下の記事で書いてます。
良かったらご覧下さい↓↓↓


最後まで読んで頂きありがとうございました。

少しでも勉強になった、役に立ったと思ったら「 サポート」 で貴方のお気持ちを頂けると嬉しいです。
今後の励みにもなります。是非よろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?