事前準備
用意するもの
用意するものは以下の通りです。jarファイルとテストデータです。
今回はOracleDBに接続するので、jarファイルをOracleサイトからダウンロード後に「WEB-INF/lib」ディレクトリの直下に配置します。
注意してほしいのがDBのバージョンとJDKのバージョンにあったjarファイルでないと、接続が上手く行かないので注意してください。(僕は1日潰れました。泣)
テストデータは、下記テーブルのデータとします。
SQL> desc AAA;
Name Null? Type
----------------------------------------- -------- ----------------------------
NO NUMBER
NAME VARCHAR2(10)
SQL> SELECT * FROM AAA;
NO NAME
---------- ----------
1 aiueo
ドライバの仕組み
ここで言うドライバとは先程事前に準備すると書いたjarファイルのことを指します。
ドライバを使用することでDBごとの特色を可能な限り考えなくて済むようになり、プログラム(Java)とDBを連携しやすくする事が目的のファイルらしいです。。
あまり、難しく考えすぎるとあれなのでJavaとDBを繋げる時には必要なファイルという事を覚えてもらえば良いです。
2つの方法があるから注意ね
JDBCドライバを使用して接続する方法は「OCI接続」と「Thin接続」があります。
両者にはOracle Clientがインストールされているかの違いがあります。
Thin接続ではOracle Clientがインストールされている必要がなく、現在の主流の接続方法らしいです。
接続手順
接続するための構文
今回はThin接続を行います。
以下が接続するために必要な構文の手順です。
- JDBCドライバの読み込み
- データベース接続
//①の構文
final String path = "oracle.jdbc.driver.OracleDriver";
Class.forName(path);
//②の構文
final String URL = "jdbc:oracle:thin:usr1/mypassword@//localhost:1521/ORCLPDB1";
Connection con = DriverManager.getConnection(URL);
データを取得する構文
以下がデータを取得する構文です。
- 変数文字列にSQL文を格納
- PreparedStatementに変数を格納
- ResultSetに実行結果を格納
- 結果をループ処理で出力
//①
String sql = "SELECT * FROM AAA";
//②
PreparedStatement ps = con.prepareStatement(sql);
//③
ResultSet rs = ps.executeQuery();
//④
while(rs.next()) {
System.out.println(rs.getInt("no"));
System.out.println(rs.getString("name"));
}