开发环境:
Eclipse3.2+MyEclipse5.0+Spring2.0+Hibernate3.0+JBoss4.0.5GA+Mysql
把mysql的jdbc驱动复制到jboss-4.2.0.CR1\server\default\lib下
我们先配置一个mysql的数据源,从jboss-4.2.0.CR1\docs\examples\jca目录下复制一份mysql-ds.xml到jboss-4.2.0.CR1\server\default\deploy目录下,接着修改它的内容,修改如下:
- <?xml version="1.0" encoding="UTF-8"?>
-
- <datasources>
- <local-tx-datasource>
- <jndi-name>MySqlDS</jndi-name>
- <use-java-context>false</use-java-context>
- <connection-url>jdbc:mysql:
- <driver-class>com.mysql.jdbc.Driver</driver-class>
- <user-name>root</user-name>
- <password>123456</password>
- <exception-sorter-class-name>
- org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
- </exception-sorter-class-name>
- <metadata>
- <type-mapping>mySQL</type-mapping>
- </metadata>
- </local-tx-datasource>
- </datasources>
在Eclipse中建立一个Hibernate的Java项目,目录结构如图一。
在根目录建立META-INF目录,在目录下编写jboss-service.xml文件
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jboss.hibernate.jmx.Hibernate" name="jboss.har:service=Hibernate">
<attribute name="DatasourceName">MySqlDS</attribute> //数据源名字
<attribute name="Dialect">org.hibernate.dialect.MySQLDialect</attribute> //对应hibernate的Dialect
<attribute name="SessionFactoryName">java:/hibernate/SessionFactory</attribute> //sessionFactory的jndi名字
<attribute name="ShowSqlEnabled">true</attribute> //在控制台输出sql语句
<attribute name="ScanForMappingsEnabled">true</attribute> //自动搜索mapping文件
</mbean>
</server>
如果有多个数据库,你可以建多个数据源,然后在jboss-service.xml文件里写上多个mbean
将以上项目以dataInterface.har为名称Deploy到Jboss,启动Jboss后,就可以通过JNDI名为java:/hibernate/SessionFactory的服务来取得SessionFactory。
注意的是:你项目中hibernate3.jar包不能包含在项目的Classpath中,否则会出现hibernate not bound的异常。
|