conn.close()就是返回连接池,这是连接池最基本的功能。
解决方案 »
- 多表连查的时候,list集合里还有一个集合,我想取出其中一个实体的属性该怎么办
- struts2 if标签。。。纠结中
- ${index.content}里的字符<p>及</p>替换成空,如何写
- 请教,如何保护网站的一些文件不被访问到?
- hibernate关于多表关系的问题,给我个例子,50分全给
- 怎样对这个表达式进行递增呀???高手快快进来看看.....
- 多线程发布邮件 求简单DOME
- 请教这个包com.sun.xml.tree是在哪个文件下,谢谢!!!
- 关于JFreeChart三问?急!
- tomcate
- <jsp:include/>包含文件中<jsp:forward/>转发给action获得数据后返回包含页
- 这是怎么回事
谢谢你的指点,
可是sun的文档上没有说conn.close()能够返回给连接池。
我的意思是将使用完的conn还给连接池,省的连接池又去建立新的连接(当连接数不够用的时候)以免浪费资源。
还请大家来解说解说
Connection cont = null;
Statement stmt = null;
ResultSet rs = null;if(cont == null){
conn = ds.getConnection();
}//有时候cont会作为一个参数传入的,一个业务流程涉及多个方法,则把cont对象传入下一个方法中,也就是说,一次业务处理,连接数据库一次。//处理stmt.close();
stmt = null;
rs.close();
rs = null;
cont.close();
cont = null;finally {
try {
if (stmt != null) {
stmt.close();
stmt = null;
}
if (rs != null) {
rs.close();
rs = null;
}
if (cont != null) {
cont.close();
cont = null;
} } catch (SQLException e) {
System.out.println(e);
}以上的代码对于JDBC算是比较ok的了。
呵呵,谢谢热心的弟兄。现在有把握多了
是返回连接到缓冲池,之所以要返回是因为保持一个connection对象是需要系统资源的。而且进行数据库连接非常的毫系统资源的,想想啊,就算是本机,一个Connection对象也是一次web层面上的连接啊,两个服务器之间的连接。JDBC2.0中已经是DataSource组件封装了JDBC1.0中的DriverManager组件了,在1。0中,数据库连接池要自己编码实现,虽然也不难,但是性能不好。然后2.0帮我们实现了连接池的功能,只要实例化一个DateSource实例则可。于是2.0里面的close就是将连接放回连接池了,而不是直接关闭。其中的性能,一般都是指运行期间的性能,1.0里面,每次请求Connection对象都是去重新连接一次数据库,而2.0里面系统一启动就实例化了一个DataSource对象,也就是说初始化了一堆的Connection对象,以后就是用就是了,不占CPU,只占一点点固定的内存而已。这样,运行期间就不再需要去一步步的连接数据库了。然后关于驱动程序,我就不多说了。