java连接数据库的时候,为什么只用关掉Connection对象就可以了呢?

如下代码为什么在finally的时候只需关闭con对象就可以了,pre对象不用关闭吗?如果是进行查询,ResultSet对象不用关闭吗?

Connection con=null;
PreparedStatement pre=null;
DBConn conns=new DBConn();
con=conns.getConnection();
try {
pre=con.prepareStatement("UPDATE student SET name=?,score=? WHERE id=?");
pre.setString(1, student.getName());
pre.setString(2,student.getScore());
pre.setInt(3, student.getSid());
pre.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

第1个回答  2012-10-13
这是错误的 PreparedStatement 和 ResultSet 都需要关闭追问

啊?讲解java编程的老师在发现没有关闭后只是进行了关闭con。我还以为只是关闭了con对象即可,因为该对象是连接数据库,这样子一来就断了连接,其他就不用管了。

追答

关闭Connection之前先关闭PreparedStatement和ResultSet以便释放这些对象所占用的资源,可以使程序更高效。
关闭顺序是:先关闭ResultSet或PreparedStatement 最后关闭Connection

本回答被提问者采纳
相似回答