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プログラムに関しての詳細な解説は下記の記事でしていますので、よろしければご覧下さい。
この記事へのコメントはありません。