- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
**まずは設定から [#w19f7769]
*** JDBCドライバをJBossに配置 [#t265cb92]
-[[MySQLのサイト:http://dev.mysql.com/downloads/connector/j/3.1.html]]よりJDBCドライバを取得
今回は mysql-connector-java-3.1.11-bin.jar にしました。
-${INSTALL_ROOT}/server/default/lib/ に配置
*** データソースの設定を配置 [#b267ef0e]
mysql-ds.xmlを${INSTALL_ROOT}/server/default/deploy に配置
mysql-ds.xml はこんな感じにしました。
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml,v 1.3.2.1 2004/12/01 11:46:00 schrouf Exp $ -->
<!-- Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://[ノード名]:3306/webdb1?useUnicode=true&
characterEncoding=ujis</connection-url>
<!-- <driver-class>org.gjt.mm.mysql.Driver</driver-class> -->
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>[id]</user-name>
<password>[pass]</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.
MySQLExceptionSorter</exception-sorter-class-name>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
設定はこれだけです。これで、
java:/MySqlDS
というJNDI名((実JNDI名?))でMySQLへのデータソースがコンテナに登録されます。
**実際のコーディング [#p4b85eec]
実際のコーディングは以下の通り
-クラスコメント(web.xmlなどに反映)
/**
* @web.servlet name="DBServlet" display-name="DatabaseServlet"
* @web.servlet-mapping url-pattern="/hello"
* @web.resource-ref name="jdbc/MySqlDS" type="javax.sql.DataSource"
* auth="Container" scope="Shareable"
* @jboss.resource-ref jndi-name = "java:/MySqlDS" res-ref-name ="jdbc/MySqlDS"
*/ ↑実JNDI名はこれ。
-コーディング
DataSource datasource = (DataSource) initContext
.lookup("java:comp/env/jdbc/MySqlDS");
Connection connection = datasource.getConnection();
**Hibernateと連携する [#tdae5279]
これでMySQLにデータソース経由で接続することができました。さて次はHibernateを使って接続してみます。といってもJBossだからといってHibernateの設定のやり方が変わるわけでもなく、通常のHibernateどおり hibernate.cfg.xmlで設定をします。ただ、Connectionを直接取得するのではなく、JBossのデータソースを使用したい場合は以下のように記述します。
<?xml version="1.0" ?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd" >
<hibernate-configuration>
<session-factory>
<!-- Datasourceを使う場合はこちら -->
<property name="connection.datasource">java:comp/env/jdbc/MySqlDS</property>
<!--MySQL JDBC Driver connection -->
<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
<!-- JDBC直接使用する場合はこちら -->
<!--
<property name="connection.url">jdbc:mysql://[ノード名]/[スキーマ名]?
useUnicode=true&characterEncoding=EUC_JP</property>
-->
<property name="connection.username">[id]</property>
<property name="connection.password">[pass]</property>
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="use_outer_join">true</property>
<!-- Mapping files -->
<mapping resource="nu/mine/kino/rss/hibernate/Rss.hbm.xml" />
</session-factory>
</hibernate-configuration>
----
この記事は
#vote(おもしろかった[6],そうでもない[1])
#vote(おもしろかった[7],そうでもない[1])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}