ぬるすぺいす遍在

仕事がらみや物書きの勉強したことや、日々雑感

JNDIについて(とおまけ)

ものっそいひさびさにJavaの話。

それもいまさら聞けない系の。

JDBC利用時に定番のjava.naming.Context.lookupによるDataSourceの取得で、"java:comp/env/[データソース定義名]"とか決め事のように書いていたけど、その"java:comp/env/"ってなんやねん、と。

 

java:comp/env/"で始まる記述のしかたは、JNDI「ENC (Environment Naming Context:環境ネーミング・コンテキスト) 名」と呼ばれ、lookup する側の Web アプリケーション (*.war) や EJB-JAR (*.jar) 内でのみ有効なネームスペースに定義されます。

今さら人に訊けない JNDI: 第 2 回 「リソース参照って何ですか?」

 

へえ~。

 

あーほんじゃ昔よく見たClass.forNameでJDBCドライバ指定するあれは?

 

ベンダJDBC Driver は java.sql.Driver を実装している必要があり、その実装クラスは static initializer で java.sql.DriverManager.registerDriver(java.sql.Driver) を使って登録している。

 

Class.forName -> static initializer -> DriverManager.registerDriver って流れ。あとは DriverManager を経由して各 Driver にアクセスして使用する。

Class.forName で DB アクセスできるようになる理由 - すぱいだー日記。

 

ほーほー!

 

何でも決め事だからと思わずに調べるのは大事ですな。