JFinal使用存储过程,数据库使用的是连接池,执行后需要释放连接吗?

华兹格 发布于 2013/11/14 10:32
阅读 2K+
收藏 2
Db.execute(new ICallback() {
    @Override
    public void run(Connection conn){
	try {
		conn.prepareCall("{ callproc_init_user("+user_id+") }").execute();
	} catch (SQLException e) {
	    renderText(""+BaseCode.ERROR.getValue());/*服务器内部错误*/
	}
    }
});
如题,使用的是Druid的数据库连接池,使用完之后是否需要释放连接?我感觉不需要吧~~求解答
加载中
1
JFinal
JFinal

     JFinal 会自动将此 Connection 关闭掉。JFinal 这样设计的原因是:避免问题而非解决问题。这样设计就避免了开发者忘记关闭connection引发问题后再去解决这个问题,从而提高开发效率、提升开发体验。

    JFinal ActiveRecordPlugin,只有开发者自己从DataSource中获取的 Connection才需要关闭,其它情况都是 JFinal 将 Connection 当作参数传给开发者,这种情况全是JFinal自行关闭的,谁打开谁关闭,这是责任。

JFinal
JFinal
回复 @hanzhankang : 对滴 ^_^
华兹格
华兹格
回复 @hanzhankang : 明白啦,@JFinal 提醒了,只有自己DataSource.getConnection()获取的才需要手动关闭,如果是Jfinal提供的,就不需要再关闭了。此run()中的方法是Jfinal提供的,所有不需要再手动关闭了~~非常感谢!
华兹格
华兹格
哦哦,多谢啦,讲得很清楚,那我自己调用并使用的,使用完了应该关闭掉!
0
明月照大江
明月照大江
需要,使用完之后一定要close~
明月照大江
明月照大江
因为没法判定,你是否已经使用完了
华兹格
华兹格
数据库连接池不会自动回收吗?
返回顶部
顶部