是否可以将Hibernate配置为使用javax.sql.DataSource实例?
我的应用程序已经有一个javax.sql.DataSource的实例,我宁愿不为hibernate重新配置数据库url,用户,密码,驱动程序等。
答案 0 :(得分:3)
在你的hibernate.cfg.xml中:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.datasource">SampleDS</property>
</session-factory>
</hibernate-configuration>
答案 1 :(得分:3)
如果数据源可以通过JNDI获得,你只需要设置配置的hibernate.connection.datasource属性 - mtpettyp的答案就证明了这一点。
如果您不在数据源来自JNDI的环境中,请提供您自己的ConnectionProvider实现,并在构建会话工厂之前将其传递给Settings对象,或者在hibernate.connection中指定其类名。 provider_class属性。如果您向Settings提供实例,则可以实例化标准DatasourceConnectionProvider并将其提供给您的DataSource。
答案 2 :(得分:1)
如果你正在使用spring初始化和spring会话工厂bean,你可以像这样简单地传入数据源
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
...
</bean>
其中dataSource引用在别处定义。