可変長固定長

IT関係の話題が中心

Java7以降でJDBCドライバクラスをロードする3つの方法

業務システムにおいてはデータベースは必要不可欠なもので、必ずといってもいいほど何かしらのデータベースがシステム構成に含まれいます。

 

javaで開発する場合、通常はJDBCを利用してアプリケーションからデータベースへのトランザクションを実現します。

 

  

 

 

目次

 

 

JDBCとは

JDBCとは、javaでデータベースを扱うためのAPIです。

 

JDBCを使用したDBアクセスを行う場合、最初にJDBCドライバクラスをロードする必要があります。javaからデータベースにアクセスするためにはJDBCドライバクラスが必要であり、データベースベンダーなどから提供されています。

 

JDBCを利用してデータベースと接続するためには、まずJDBCドライバクラスのロードが必要となります。また、JDK1.7以降のバージョンではJDBC4.1がサポートされており、JDBCドライバのロードは3通りの方法があります。

 

 

 

方法1:jdbc.driversシステムプロパティに設定する

データベースアクセスを行うプログラムを実行する際に指定する方法です。

 

-Dオプションを使用して、jdbc.driversシステムプロパティに利用したいJDBCドライバクラスを指定します。

 

 

>java -Djdbc.drivers=org.apache.derby.jdbc.ClientDriver TestApp

※-Dの直後に空白は不要です。

 

 

この方法を利用するケースは簡易なバッチ処理系のアプリケーションで複数のデータベースを扱うシステムなどが想定できますが、利用しているケースはあまり経験がありません。

 

 

 

方法2:Class.forNameメソッドを使う

JDBCドライバをClass.forNameメソッドで登録する方法は、レガシーなJDBCロード方法です。従来のシステムではよくこの方法がとられています。

 

forNameメソッドは、引数で指定したクラスをロードする機能を持っています。ClassクラスのforNameメソッドを利用することでJDBCドライバをロードすることができます。

 

また、引数で指定されたクラスはロードされる際にstaticイニシャライザを実行します。つまり、JDBCドライバクラスはstaticイニシャライザ内にJDBCドライバの登録処理が実装されているというわけです。

 

 

//ドライバの登録

 

Class.forName("org.apache.derby.jdbc.ClientDriver");

 

//コネクションの取得

Connection conn = DriverManager.getConnection(url, user, password);

 

 

 

方法3:クラスパスを通す

環境変数CLASSPATHで指定しているパスに、JDBCドライバクラスのjarファイル のパスを通すことで、自動的にJDBCドライバのロードが行われます。

 

この方法はJDBC4.0以降で導入された方法であり、最も簡単な方法といえます。

また、これまでClass.forNameメソッドでドライバロードしていた作業は不要になるということです。

 

 

 

 

以上、Java7以降で使えるJDBCドライバロードの方法3つを紹介しました。

 

ただ、多くの場合はフレームワークを利用してシステムを構築するため、フレームワーク内の仕組みを利用してJDBCドライバをロードしているケースがほとんどで、特段設計や実装する必要なく、設定すればよいレベルの話であったかもしれません。

 

基礎知識として紹介しました。