jdbctemplate,jpatemplate

时间:2009-08-14 05:04:12

标签: java spring spring-mvc

在我的dao中,在每个方法中,当我调用jdbctemplate时,我应该使用新的jdbctemplate()调用。对?或者获取jdbctemplate的一个静态瞬间并重用? jpatemplate怎么样?

3 个答案:

答案 0 :(得分:2)

要添加其他答案,JdbcTemplate非常轻量级,其构建成本接近于零。因此,如果您 在每个操作上创建一个新的操作,则可能不会出现任何副作用或有意义的性能下降。该类仅仅是JDBC API的行为包装器。按照相同的逻辑,没有理由要确保只有一个JdbcTemplate对象。它应该适合您选择使用的任何设计。

大多数DAO直接点实例化JdbcTemplate。相反,它们是JdbcDaoSupport的子类,它为您管理JdbcTemplate个实例。然后,您的子类调用getJdbcTemplate()来获取实例。如果您不是JdbcDaoSupport的子类,那么在初始化DAO bean时创建JdbcTemplate的实例,然后重新使用它。

这同样适用于其他DAO模板类(Hibernate,JPA等)。

答案 1 :(得分:1)

  

在我的dao中,在每个方法中,当我调用jdbctemplate时,我应该使用新的jdbctemplate()调用。正确?

不,你没有。应该通过配置在您的DAO中注入JdbcTemplace。同上JpaTemplate

答案 2 :(得分:1)

JdbcTemplate是线程安全的,因此在整个应用程序中共享它的一个实例是完全安全的(虽然只共享用于初始化JdbcTemplate的DataSource可能更有意义)。通常每个类的一个(非静态)实例就足够了,JdbcTemplate自己处理线程问题,除了数据库锁之外你永远不会遇到任何并发问题。