在我的dao中,在每个方法中,当我调用jdbctemplate时,我应该使用新的jdbctemplate()调用。对?或者获取jdbctemplate的一个静态瞬间并重用? jpatemplate怎么样?
答案 0 :(得分:2)
要添加其他答案,JdbcTemplate
非常轻量级,其构建成本接近于零。因此,如果您 在每个操作上创建一个新的操作,则可能不会出现任何副作用或有意义的性能下降。该类仅仅是JDBC API的行为包装器。按照相同的逻辑,没有理由要确保只有一个JdbcTemplate
对象。它应该适合您选择使用的任何设计。
大多数DAO直接点实例化JdbcTemplate
。相反,它们是JdbcDaoSupport
的子类,它为您管理JdbcTemplate
个实例。然后,您的子类调用getJdbcTemplate()
来获取实例。如果您不是JdbcDaoSupport的子类,那么在初始化DAO bean时创建JdbcTemplate
的实例,然后重新使用它。
这同样适用于其他DAO模板类(Hibernate,JPA等)。
答案 1 :(得分:1)
不,你没有。应该通过配置在您的DAO中注入在我的dao中,在每个方法中,当我调用jdbctemplate时,我应该使用新的jdbctemplate()调用。正确?
JdbcTemplace
。同上JpaTemplate
。
答案 2 :(得分:1)
JdbcTemplate是线程安全的,因此在整个应用程序中共享它的一个实例是完全安全的(虽然只共享用于初始化JdbcTemplate的DataSource可能更有意义)。通常每个类的一个(非静态)实例就足够了,JdbcTemplate自己处理线程问题,除了数据库锁之外你永远不会遇到任何并发问题。