JDBC(Java DataBase Connectivity)とは、Java から DB にアクセスするための標準API です。JDBC 自体はインターフェース(仕様)で、使用する際には DB 固有の JDBC 実装ライブラリです。
JDBCは、一言でいってしまうなら「リレーショナル・データベース(および、ほとんどすべての表形式のデータ)にアクセスするための、標準Java API」です。JDBCは「Java Database Connectivity」の省略だといわれています(が、実はJDBC仕様には明記されていません)。
企業内のクリティカルなデータは、多くの場合リレーショナル・データベースに格納されています。そのため、JDBCは、Javaによるエンタープライズ・アプリケーションの基礎をなす、重要なAPIの1つとなっています。
引用: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型で判定