首页 文章

将JDBCTemplate与Hibernate SessionFactory一起使用?

提问于
浏览
1

我们有一个Spring / Hibernate应用程序,并且由于涉及性能和开发时间的原因而想添加少量JDBC . 我可以使这个dao子类HibernateDaoSupport并使用会话的连接来执行我的JDBC,但我宁愿使用JdbcTemplate . 但是,JdbcTemplate是使用java.sql.Datasource初始化的 . 如何使用现有的Hibernate SessionFactory初始化它?

3 回答

  • 0

    您是否需要向SessionFactory实现提供DataSource?你为什么不把它连接到JDBC模板?

    您使用的是哪个SessionFactory实现?如果您正在使用Spring实现,请参阅AbstractSessionFactoryBean.html#getDataSource()

  • 4

    您始终可以使用hibernate会话的doWork方法 - 这将为您提供java.sql.Connection . 您可以使用此连接构造构造SingleConnectionDataSource(注意:第二个参数应该始终为true,因为您不想关闭底层连接)并将此数据源传递给JDBCTemplate ...

  • 2

    “从我们的hibernate配置中提取数据源似乎为我需要的东西做了很多工作”

    我不明白为什么需要做那么多工作 . 这只是创建,剪切和复制几个标签和属性的问题 .

    例如:

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

    “您使用的是哪个SessionFactory实现?如果您正在使用Spring实现,请参阅AbstractSessionFactoryBean.html#getDataSource()”

    显然,getDataSource()仅适用于Spring 2.5 . 这是参考:Click here

    Spring 2.0没有't have the getDataSource(). Here'的参考:Click here

    我们的会话工厂是使用用hibernate属性初始化的AnnotationSessionFactoryBean创建的... hibernateSessionFactory是一个SessionFactory . 我如何获得对SessionFactoryBean的引用?

    我想知道为什么你使用SessionFactory而不是LocalSessionFactoryBean,它是AnnotationSessionFactoryBean的子类?

    是不是 bean id="hibernateSessionFactory" 行已经引用了SessionFactoryBean?

相关问题