jdbcのURLからドライバを自動ロード

7 views
Skip to first unread message

秋間武志

unread,
Sep 2, 2008, 5:52:23 AM9/2/08
to rub...@googlegroups.com
秋間です。

SeasarConferenceの資料を見直していて、JDBC接続時に
指定するURLからドライバを自動ロードできるんじゃないの?
とか思って、やってみました。既にコミット済みです。

gemでjarをインストールできる以下のDBに関しては、
CLASSPATH上に対象となるドライバのクラスが見つからなかった
場合には、自動で対応するgemをrequireして、再度ドライバを
取得しようとします。

jdbc-derby (10.3.2.1)
jdbc-h2 (1.0.63)
jdbc-hsqldb (1.8.0.7)
jdbc-mysql (5.0.4)
jdbc-postgres (8.2)
jdbc-sqlite3 (3.5.8)

またderbyについては、上記のgemに加えて、
自動的に、$JAVA_HOME/db/lib/derby.jarをロードしようとします。

これらの自動的な処理を行いたくない場合は、
Rubeus::Jdbc::DriverManager.connect("jdbc:xxxx:xxxx", "user1", "pw1",
:auto_setup_manager => false)
とオプションを指定すれば、これまでと同じように動作します。

これによって、examples/jdbc_example.rb のsetup_derbyという関数は
不要になってすっきりしました!

できたらtrunkを動かして試してみてください~
致命的な問題がなかったらこのままいきます!

taka_2

unread,
Sep 2, 2008, 9:41:06 AM9/2/08
to rubeus
重元です。

> SeasarConferenceの資料を見直していて、JDBC接続時に
> 指定するURLからドライバを自動ロードできるんじゃないの?
> とか思って、やってみました。既にコミット済みです。

すげー!ナイスアイデアですね。

とりあえず、Windows + derby(Java6添付のものでない)では、
jdbc_example動きましたよ。

Eihiro Saishu

unread,
Sep 2, 2008, 6:07:21 PM9/2/08
to rub...@googlegroups.com
これはすごい。

秋間武志 さんは書きました:

taka_2

unread,
Sep 6, 2008, 11:41:48 AM9/6/08
to rubeus
秋間さん

重元です。

>またderbyについては、上記のgemに加えて、
>自動的に、$JAVA_HOME/db/lib/derby.jarをロードしようとします。

のところなのですが、
File.join(ENV_JAVA['java.home'], 'db', 'lib', 'derby.jar')
だと、
/opt/jdk1.6.0_07/jre/db/lib/derby.jar
になるのですが、実際のパスは、
/opt/jdk1.6.0_07/db/lib/derby.jar
です。

なので、
File.join(ENV['JAVA_HOME'], 'db', 'lib', 'derby.jar')
の方が良いかと思いますが、いかがでしょうか。

On 9月2日, 午後6:52, "秋間武志" <akm2...@gmail.com> wrote:
Reply all
Reply to author
Forward
0 new messages