Hibernate使用javax.sql.DataSource的实例

时间:2009-05-19 17:48:35

标签: java sql hibernate

是否可以将Hibernate配置为使用javax.sql.DataSource实例?

我的应用程序已经有一个javax.sql.DataSource的实例,我宁愿不为hibernate重新配置数据库url,用户,密码,驱动程序等。

3 个答案:

答案 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引用在别处定义。