LoginSignup
6
7

More than 5 years have passed since last update.

JDBCについて

Last updated at Posted at 2016-12-06

JDBC(Java DataBase Connectivity)とは、Java から DB にアクセスするための標準API です。JDBC 自体はインターフェース(仕様)で、使用する際には DB 固有の JDBC 実装ライブラリです。

JDBCは、一言でいってしまうなら「リレーショナル・データベース(および、ほとんどすべての表形式のデータ)にアクセスするための、標準Java API」です。JDBCは「Java Database Connectivity」の省略だといわれています(が、実はJDBC仕様には明記されていません)。

 企業内のクリティカルなデータは、多くの場合リレーショナル・データベースに格納されています。そのため、JDBCは、Javaによるエンタープライズ・アプリケーションの基礎をなす、重要なAPIの1つとなっています。

r5fig1.gif

引用:Javaデータアクセスの基礎(1):JDBCとは何か? - @IT

従って、基本的には DB 間の違いは JDBC が吸収してくれる仕様となっています
ORM(Object-Relational Mapping)とは、DB のレコードと Java オブジェクトを自動的に紐づける O/R マッピング処理や DB への接続/切断、トランザクション処理など、DB関連の処理を自動化してくれるフレームワークです。

DBに接続する時

「PreparedStatement」は「Statement」と同じくデータベースに対するSQL文を実行するために使われますが、「PreparedStatement」で使うSQLは事前にコンパイルが行われています。

PreparedStatement による検索 (Statementの強化版。Statemetは使わない。基本はPreparedStatement最初から結びついてるステートメント。

PreparedStatementクラスによる SQL文の発行の際は、プレースホルダを用いて、SQL 構文の動的に変化する箇所を「?」で記述することが出来ます。

プレースホルダに値をバインドする際は、PreparedStatement クラスの setString()メソッド等を利用します。第
1 引数には位置、第 2 引数には値を指定します。

※プレースホルダとは、実際の内容を後から挿入するために、とりあえず仮に確保した場所のこと。 また、そのことを示す標識などのこと。
引用:プレースホルダー - Google 検索

String sql = "SELECT * FROM employee WHERE emp_id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,   "0001");
rs = ps. executeQuery();

「?」はプレースホルダー。
ps.setString(1, "0001");の第一引数の1は、左から何番目の「?」
第二引数の2は、どんな値をいれるか。

接続を切断する

DB 接続の切断は、Connection.close()によって行います。接続の終了処理は必ず行う必要があるため、finally ブロックの中で close()メソッドを実行します。
切断処理をしていない場合、システムが停止するなど、致命的なトラブルに繋がる場合があるため、注意してください。

getConnection()
Connection.close()

ResultSet クラス

SQLを発行したものが、ResultSetに入っています。
以下は、DBに接続するときの一覧の流れにです。

conn = DBManager.getConnection();
//DBに接続している情報に接続

st = conn.createStatement();
//SQL文を発行

String sql = "SELECT * FROM employee";
//SQL文を変数に格納

rs = st.executeQuery(sql);
//データベースに問い合わせを実行

(rs.next())
//次の行があるかないかチェックのために、boolean型で判定
6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7