如果无须Hibernate自己管理数据源,而是直接访问容器管理数据源,Hibernate可使用JNDI(Java Naming Directory Interface,Java命名目录接口)数据源的相关配置。下面是连接JNDI数据源的主要配置属性。
Ø hibernate.connection.datasource:指定数据源JNDI名字。
Ø hibernate.jndi.url:指定JNDI提供者的URL,该属性是可选的。如果JNDI与Hibernate持久化访问的代码处于同一个应用中,则无须指定该属性。
Ø hibernate.jndi.class:指定JNDI InitialContextFactory的实现类,该属性也是可选的。如果JNDI与Hibernate持久化访问的代码处于同一个应用中,则无须指定该属性。
Ø hibernate.connection.username:指定连接数据库的用户名,该属性是可选的。
Ø hibernate.connection.password:指定连接数据库的密码,该属性是可选的。
注意:即使使用JNDI数据源,一样需要指定连接数据库的方言。虽然设置数据库方言并不是必需的,但对于优化持久层访问很有必要。
下面是配置Hibernate连接Tomcat中数据源的配置片段。
- <!-- 配置JNDI数据源的JNDI名 -->
- <property name="connection.datasource">java:comp/env/jdbc/dstest</property>
- <!-- 配置连接数据库的方言 -->
- <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
如果数据源所在容器支持跨事务资源的全局事务管理,从JNDI数据源获得的JDBC连接,可自动参与容器管理的全局事务,而不仅仅是Hibernate的局部事务。
本文转自
fkJava李刚 51CTO博客,原文链接:http://blog.51cto.com/javaligang/902812 ,如需转载请自行联系原作者