2014-12-03 10:22 | 题主 | ||||||||
|
关于DbUtil工具类里的连接关闭问题 我在serverScript里或者自己写的java method 中,如果调用DbUtil里的方法,比如execute(HttpServletRequest request, String sql)这个方法,从代码中可以看到调用的Query类,返回了ResultSet,但是我没有看到关闭Connection的操作,这点让我很疑惑,因为webbuilder运行这么长时间没有问题,不可能没有关闭数据库连接,所以我想请问各位老师,关闭操作在哪里执行的?我们是否可以放心的直接调用DbUtil里的方法,而不需要做其他处理?再比如DbUtil的这个方法: PreparedStatement 是在方法内部定义的,没有办法在外部关闭吧?那么我使用这个方法的时候,如何关闭它。 谢谢。 |
2014-12-04 17:11 | #1 | ||||||||
|
在WebBuilder中,使用DbUtil.query(request...,DbUtil.execute(request...,等方法, 注意带有request参数的所有数据库资源都会在request请求完成后自动释放。 关于DbUtil.getResultSet获取的结果集可以使用DbUtil.closeResultSet来关闭,因为通过resultSet对象可以找到statement和connection。 |
2014-12-04 20:12 | #2 | ||||||||
|
谢谢陈老师的回复 DbUtil.closeResultSet里代码确实有写关闭statement,这里是我没有看清楚,抱歉。 “带有request参数的所有数据库资源都会在request请求完成之后自动释放 ”这里的自动释放是由连接池处理的么?还是代码里有处理,由于我没有找到这些代码,所以还是有些疑惑。水平有限,还请老师科普讲解一下(如果代码有写,指下类名,方法名称即可)。 谢谢。 |
2014-12-23 20:50 | #3 | ||||||||
|
是在finally里面关闭的,parser.java文件 |
2014-12-25 23:44 | #4 | ||||||||
|
谢谢三楼@wzysky |
2014-12-30 16:53 | #5 | ||||||||
|
连接自动关闭很不错 |
2015-02-11 14:40 | #6 | ||||||||
|
如何我手工编写的代码,statement和resultset不关闭有什么影响吗? |
2015-02-24 09:53 | #7 | ||||||||
|
连接关闭时resultset有流对象不会自动释放 最好手动关闭resultset |