jdbc中connection,preparestement,resultset关闭后(调用close())对象还存在,不是null?

jdbc中connection,preparestement,resultset关闭后(调用close())对象还存在,不是null?为什么,哪位大虾能详细解释一下内部原理?还有,在查询数据库的时候用return rs.getXXX("***")这样安全吗,还是先用一个变量缓存下来(i=rs.getXXX("***");return i)比较好?

首先Connection,preparestement,resultset是一系列的数据库操作类、关闭顺序为resultset,preparestement,Connection,但是如果你直接关闭了Connection,其余两个也会自动关闭,如是你关闭了前两个,Connection是不会关闭的。至于你调用了close()方法、它会先去判断你所关闭的连接是否已经关闭、若是已经关闭了,那么它的操作也就不会执行了。至于查询到得数据必须先接受,你怎么确定你的查询返回的结果会不会为空,若你你返回一个boolean,用一个if(resultSet.next() && resultSet!=null){bool=true;}做判断,这样会更稳健一点。手打,望采纳
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-08
建议用Result返回,它返回的是一个MAP数组