我有工作的 Hibernate/Spring Web 应用程序(HibernateDaoSupport
、getHibernateTemplate()
等)。对于几个任务,我需要使用 JDBC(jdbcTemplate?)。在那种场景下该怎么做?
最佳答案
只需创建 JdbcTemplate
并使用 HibernateDaoSupport
、HibernateTemplate
使用的相同 DataSource
。 Hibernate 只是一个在 JDBC DataSource
/connection 之上工作的奇特库。您可以手动使用它。尝试:
@Autowired
private DataSource ds;
如果你幸运的话,这应该可行。更好的想法是创建 JdbcTemplate
作为 Spring bean 并注入(inject)适当的数据源:
<bean id="jdbcTemplate" class="org.springframework.jdbc.coreJdbcTemplate">
<constructor-arg ref="dataSource"/>
</bean>
考虑使用JdbcOperations
接口(interface),另请参阅SimpleJdbcOperations .
@Autowired
private JdbcOperations jdbc;
如果您开始通过 Hibernate 并使用直接 JDBC 访问代码来访问同一个数据库/连接池,则必须注意一些副作用:
- Hibernate L2 缓存不知道 JDBC 修改
- JDBC 代码不知道 Hibernate 乐观锁定
- 交易管理
- ...
另一种方法是访问 Hibernate session 使用的 JDBC 连接(在 HibernateDaoSupport
中:
getSession().connection()
关于hibernate - 如何在工作 Hibernate/Spring Web 应用程序上使用 JDBC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6316172/