在我的dao中,在每个方法中,当我调用jdbctemplate时,我应该使用new jdbctemplate()进行调用。对吗?或者获取jdbctemplate的一个静态实例并重用?jpatemplate怎么样?
发布于 2009-08-14 05:08:21
在我的dao中,在每个方法中,当我调用
时,我应该使用new jdbctemplate()来调用。对吗?
不,你不需要。JdbcTemplace应该通过配置注入你的DAO中。JpaTemplate也是如此。
发布于 2009-08-14 07:15:45
除此之外,JdbcTemplate是非常轻量级的,它的构建成本几乎为零。因此,如果您要在每个操作上创建一个新的,可能不会有任何副作用或有意义的性能降级。这个类仅仅是JDBC API的行为包装器。按照同样的逻辑,没有理由小心地确保您只有一个JdbcTemplate对象。它应该适合您选择使用的任何设计。
大多数DAO都不会直接实例化JdbcTemplate。相反,它们是JdbcDaoSupport的子类,它为您管理一个JdbcTemplate实例。然后,您的子类调用getJdbcTemplate()来获取实例。如果您没有对JdbcDaoSupport进行子类化,那么在初始化DAO bean时创建一个JdbcTemplate实例,然后重用它。
这同样适用于其他DAO模板类(Hibernate、JPA等)。
发布于 2009-08-14 05:27:55
JdbcTemplate是线程安全的,所以在整个应用程序中共享它的一个实例是完全安全的(尽管只共享用于初始化JdbcTemplate的DataSource可能更有意义)。一般来说,每个类一个(非静态)实例就足够了,JdbcTemplate自己处理线程问题,除了数据库锁之外,你永远不会遇到任何并发问题。
https://stackoverflow.com/questions/1276129
复制相似问题