spring配置文件:<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="baseJdbcDAO" class="core.db.dao.impl.BaseJdbcDAO">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
然后通过类BaseJdbcDAO获得ConnectionConnection conn = baseJdbcDAO.getSqlConn();
请问获得的这个Connection对象conn需要手工关闭吗?(conn.close();)
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="baseJdbcDAO" class="core.db.dao.impl.BaseJdbcDAO">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
然后通过类BaseJdbcDAO获得ConnectionConnection conn = baseJdbcDAO.getSqlConn();
请问获得的这个Connection对象conn需要手工关闭吗?(conn.close();)
jdbcTemplate已经能解决几乎所有的增删改查问题的了。
如果非要这样用Connection,那最好还是要关闭一下吧。
重写方法,里面即有sesion 不用关闭,他是在spring管理范围
这种方式获得的connection,Spring已经管不了了,因为不是它的IOC来create的实例,需要手动关闭
重写方法,里面即有sesion 不用关闭,他是在spring管理范围hibernate的我也知道他不用关闭,但是我现在是spring的jdbc,和hibernate没关系,我是这么认为的我自己手工测试了一下,我的数据源里配了默认是5个连接数,我一次性插入10条数据,我通过数据库查询还是5条,貌似spring已经管理了这个connection,但我不是很确定
public class BaseJdbcDAO extends JdbcDaoSupport implements IBaseJdbcDAO { private static final Log logger = LogFactory.getLog(BaseJdbcDAO.class);
public Connection getSqlConn()
{
return this.getConnection();
}因为不是它的IOC来create的实例???上面的Connection应该是从ioc总获取的吧?