
JDBCとは?
Javaから、Oracleに接続する場合は、JDBC(Java Database Connectivity)というAPIを使います。
JDBCのメリット
データベースの種類が異なっていても、ほぼ同じプログラムを流用できる。
JDBCを使うには?
「JDBC」はただの共通クラスの集まりなので、実際にアクセスするには、JDBCの実装である「JDBCドライバ」を用意する必要がある。
「JDBCドライバ」は一般的に、RDBのベンダから提供されています。
JDBCドライバを取得する。
なお、著者の環境は下記で検証しています。
- Oracle:12.2.0
- JDK:1.7
下記のサイトにアクセスします。
http://www.oracle.com/technetwork/jp/database/features/jdbc/index-099275-ja.html

「Accept」して、「ojdbc7.jar」をクリックします。(JDKのバージョンによっては、古いバージョンにした方がよいかもしれません。)

Oracleにサインインして、ダウンロードしましょう。(無料で登録ができます。)
ダウンロードしたjdbcを、使いたいJavaプロジェクトのビルドパスに追加します。(Eclipseを使っていた場合)

以上で、JDBCドライバに接続する設定は完了です。
Javaで、Oracleに接続して、情報を取得する
サンプル
package oracletest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class OracleTest {
public static void main(String[] args) throws Exception {
Connection con = null;
Statement smt = null;
ResultSet rs = null;
//ホスト名
String hostname = "localhost";
//SID
String sid = "orcl";
//ユーザー名
String username = "orauser";
//パスワード
String passwd = "orapass";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection(
"jdbc:oracle:thin:@" + hostname + ":1521:" + sid,username,passwd);
smt = con.createStatement();
rs = smt.executeQuery("SELECT * FROM USER_MASTER");
while(rs.next()){
System.out.println(
"USER_ID=" + rs.getString("USER_ID")
+ ",DEPT_NO=" + rs.getString("DEPT_NO")
+ ",USER_NAME=" + rs.getString("USER_NAME")
);
}
} catch (Exception e) {
e.printStackTrace();
}
smt.close();
con.close();
}
}
実行結果

あえて、冗長に書いていますが、実際の現場では、下記のように簡潔なコードにリファクタリングしたりします。
- Oracleの接続設定は、iniファイルや、プロパティファイルへ外出しする。
- コネクションや、クローズ等は、別途クラスで外出しする。
- SQLはDaoクラス等を作成して、そこで読んだり、SQL自体をソースコードの外へ外出しする。
- そもそも、生JDBC、SQLは触らず、フレームワークのO/Rマッピング機能を使って簡潔に記述する。
なお、JDBCプログラムに関しての詳細な解説は下記の記事でしていますので、よろしければご覧下さい。







この記事へのコメントはありません。