0

早些时候,我在应用程序服务器本身中配置了数据源,并将其传递给应用程序级别的 hbr.xml 文件

<property name="hibernate.connection.datasource">java:comp/env/jdbc/myDataSource</property>

现在我已将 applicationContext.xml 中的数据源配置为

<bean id="mydatasource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
            <property name="url"
                value="jdbc:sqlserver://localhost:1433;databaseName=mydatasource;maxPoolSize=100" />
            <property name="username" value="sa" />
            <property name="password" value="${database.password}"/>

    </bean>

如何将此传递给 hbr.xml 文件?基于下面给出的我的另一个问题是我的会话工厂应该是什么类?应该是org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean OR

org.springframework.orm.hibernate3.LocalSessionFactoryBean
4

1 回答 1

0

将数据源与休眠映射一起注入您的 DAO:

<bean id="mydatasource" ...>
  ...
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  <property name="dataSource" ref="mydatasource" />
  <property name="mappingResources">
    <list>
      <value>path/to/your/mappings.hbm.xml</value>
    </list>
  </property>
  <property name="hibernateProperties">
    <props><!-- see http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html -->
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
      ....
    </props>
  </property>
  ...
</bean>

使用注解,您可以通过注入的 bean 访问您的数据源

@Resource
private SessionFactory sessionFactory;
...
Session session = this.sessionFactory.getCurrentSession();
于 2012-05-29T22:47:09.367 回答