Oracle研修7:JDBCによるDBプログラミング(eclipse使用)

【JaveでDBを扱うときに使用】

・JDBC と ORM

 

JDBC (Java DataBase Connectivity)

JavaプログラムからDBにアクセスするための標準インターフェース(接点)の一つ。

*API(Application Program Interface)・・・プログラミングを効率よく行うためのクラス集り。

 

ORM(Object-Relational Mapping)

DB のレコードと Java オブジェクトを自動 的に紐づける O/R マッピング処理や DB への接続/切断、トランザクション処理など、DB 関連の処理を自動化してくれるフレームワーク

 

DB への接続/切断プログラムの作成

1. JDBC ドライバの準備

(*今回は「Oracle Database 11g Release 2 用の JDBC ドライバ」をダウンロードした。)

JDBC ドライバのダウンロード

 

ダウンロードしたら、「jdbc」フォルダの「lib」フォルダ内に「ojdbc6.jar」ってのが作成されてる。

 

 

【準備1:「eclipse」を開き、使用するプロジェクトの「libフォルダ」に「ojdbc6.jar」をコピー。】

<libフォルダ>

・静的プロジェクト → プロジェクト直下に「libフォルダ」作成

・動的プロジェクト → 「WebComtent」→「WEB-INF」の中に「libフォルダ」がある。

 

【準備2:ビルド・パスを通す!】

プロジェクト上で右クリック → [プロパティ] → [Java のビルド・パス] → [ライブラリー] →[Jar 追加] → [lib フォルダーに格納した ojdbc6.jar ファイルを選択]

 

【DB接続:サンプル】

 

 

【Statement クラス 】

Statement クラスのオブジェクト → Connection クラスの createStatement()メソッドで生成。

<検索用の SQL 文の発行>

<登録、更新、削除用の SQL 文の発行>

 

【ResultSet クラス】

・表形式のデータでカーソルを利用(1レコード文を取得)

 

 

<クラスからDBへ接続&検索:作成例>

 

PreparedStatement による検索

PreparedStatement クラス

→プレースホルダを用いて、 SQL 構文の動的に変化する箇所をバインド変数「?」で記述可能。

<一部実装例>

<実装例>

【SQL インジェクション】

DB に対し、想定していない SQL コマンドを不正に実行する攻撃手法。

*後日記載

【トランザクション管理】

・一連のデータ処理を 1 つの単位として管理すること。

一連の流れの中でエラーが起き たら、全ての処理を実行前に戻す。

【ACID 特性 】

・トランザクション処理に求められる特性

*後日記載