代码之家  ›  专栏  ›  技术社区  ›  Ben Noland

使用javax.sql.datasource实例休眠

  •  0
  • Ben Noland  · 技术社区  · 17 年前

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

    我的应用程序已经有一个javax.sql.datasource实例,我不想只为休眠重新配置数据库URL、用户、密码、驱动程序等。

    3 回复  |  直到 16 年前
        1
  •  3
  •   araqnid    17 年前

    如果数据源通过JNDI可用,您只需设置配置的hibernate.connection.data source属性-mtpettyp的答案就可以证明这一点。

    如果您不在数据源来自JNDI的环境中,请提供您自己的ConnectionProvider实现,并在构建会话工厂之前将其传递给设置对象,或者在hibernate.connection.provider_class属性中指定其类名。如果为设置提供实例,则可能会实例化标准的DataSourceConnectionProvider并将其作为数据源。

        2
  •  3
  •   mtpettyp    16 年前

    在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>
    
        3
  •  1
  •   Jherico    17 年前

    如果您使用的是Spring初始化和Spring会话工厂bean,那么您可以像这样简单地传入数据源。

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        ...
    </bean>
    

    在别处定义了数据源引用。