データベースへの接続情報を定義します。データベースへの接続はJDBC、DataSource、JDBC-ODBCブリッジを使用してデータベース接続が可能です。
JDBCによって接続する時は、resource-list要素のresource要素にtype属性に「JDBC」と記述し、driver、url、username、passwordを指定します。
<resource-list>
<resource id="TestJDBC" type="JDBC">
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:127.0.0.1:1251:ORCL</url>
<username>test</username>
<password>test</password>
</resource>
</resource-list>
driverには、JDBCドライバのクラス名を記述します。また、urlの記述方法は製品依存になります。上記の例ではOracleのthinドライバの記述方法です。使用する製品のJDBCドライバのマニュアルを確認してください。
サーバサイドでデータソースを使用する場合には、type属性に「DataSource」と記述しJNDI名を定義します。
<resource-list>
<resource id="OracleDataSource" type="DataSource">
<jndi-name>java:comp/env/jdbc/SampleDataSource</jndi-name>
</resource>
</resource-list>
JNDI名の記述方法もJNDIサーバの設定によって変わる場合があります。アプリケーションサーバのマニュアルを確認してください。
Microsoft Windowsに設定されているODBCデータソースにJDBCドライバからブリッジする場合には、type属性を「JDBC-ODBC」と指定します。
<resource-list>
<resource id="TestAccess" type="JDBC-ODBC">
<odbc-data-source>jdbc:odbc:TestAccess</odbc-data-source>
</resource>
</resource-list>
データソース名は上記のodbc-data-source要素のTextの赤字のところにの指定してください。
robbie.dao.resource.DbResourceインタフェースを実装したクラス(※)のインスタンスが、XDaoのメンバ変数としてセットされています。これ処理はXDaoFactoryによって行われるため、開発時には気にする必要はありません。
※ JdbcResource、DataSourceResource、JdbcOdbcResourceの3種類が存在します。2.1〜2.3で前述した3つのリソース定義に対応しています。
このDbResourceインタフェースには以下のようなAPIが存在します。なお、開発時にこれらのAPIを使用することはありません。
メソッド |
処理概要 |
Connection getConnection() |
XMLの定義を基にConnectionインスタンスを取得します。 |
void release() |
Ver1.1.0より追加されました。
現在のスレッドに紐付いているConnectionリソースを開放します(閉じます)。この実装はThread毎にコネクションプーリングするJdbcResourceのみで実装されています。DataSourceResource、JdbcOdbcResourceでは何も処理を行っていません。
|
release()メソッドは、Ver1.1.0から追加されたAPIです。このメソッドは同じくVer1.1.0から追加されたXDao#release()メソッドから呼び出されているため、開発時にこのAPIを使用することはありません。
XDaoおよびGeneralXDaoを使用する場合、DbResouceのインスタンスは1つのリソース定義(resouce要素)につき1つのインスタンスが初期化時に作成されます。このインスタンスはXMLのファイルスタンプが更新されるまで、生き続けることになります。
これらXDbResourceのインスタンスは、DAOの定義時にresouce-ref要素で同じresourceのidを指定した全てのDAOと共有されることになります。しかし、基本的にDbRresouceは状態を持たないインスタンスであるため、マルチスレッドで使用しても特に問題はありません。