问题描述
java断开从连接池中获取的连接,规范的操作是怎样的,ResultSet,PreparedStatement,Connection是否需要依次关闭,若需要,应该怎么做才是高效率,规范,而且不会发生内存泄露。涉及到很多try和catch,不知怎么处理。
解决方案
解决方案二:
ResultSet,PreparedStatement,Connection是否需要依次关闭需要应该怎么做才是高效率写一个函数用来关闭,如放在的帮助类JdbcUtil里,如publicstaticvoidreleaseJdbcResource(ResultSetrs,Statementstmt,Connectionconn)throwsSQLException{try{if(rs!=null){rs.close();}}finally{try{if(stmt!=null){stmt.close();}}finally{if(conn!=null){conn.close();}}}}
调用步骤Connectionconn=yourDataSource.getConnection();//TODO访问数据库:CRUDJdbcUtil.releaseJdbcResource(rs,stmt,conn);
解决方案三:
一楼的哥好快啊,不过你写的关闭的函数中最好还是catch一下,如果真的关不了也知道出了问题
解决方案四:
引用1楼Inhibitory的回复:
ResultSet,PreparedStatement,Connection是否需要依次关闭需要应该怎么做才是高效率写一个函数用来关闭,如放在的帮助类JdbcUtil里,如publicstaticvoidreleaseJdbcResource(ResultSetrs,Statementstmt,Connectionconn)throwsSQLException{try{if(rs!=null){rs.close();}}finally{try{if(stmt!=null){stmt.close();}}finally{if(conn!=null){conn.close();}}}}调用步骤Connectionconn=yourDataSource.getConnection();//TODO访问数据库:CRUDJdbcUtil.releaseJdbcResource(rs,stmt,conn);
还有个问题:我如果使用RowSet(RowSet做返回参数传递到了别的类里面)需要怎么做,我是查询得到数据后马上释放Connection(此时应该close哪些?),RowSet应该什么时候close?
解决方案五:
还有个问题:我如果使用RowSet(RowSet做返回参数传递到了别的类里面)需要怎么做,我是查询得到数据后马上释放Connection(此时应该close哪些?),RowSet应该什么时候close?一定要按ResultSet,Statement,Connection这个顺序close,否则会出错。