我写了个JDBC封装类,现在在使用的过程中遇到点问题,希望各位指教,帮我解决此问题,具体问题如下:
其中的一个方法:[code="java"]
/**
* @description 执行查询sql,此处不能关闭statement,原因是如果在finally里关闭了statement,则resultSet也关闭了,怎么才能关闭它呢?
* @param con
* @param sql
* @return
*/
public static ResultSet executeQuery(Connection con,String sql) {
if(null == con) {
throw new IllegalArgumentException("the parameter connection[con] is null !");
}
Statement stm = null;
try {
stm = con.createStatement();
ResultSet result = stm.executeQuery(sql);
return result;
} catch (SQLException e) {
try {
con.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
getLogger().fatal("执行SQL["+sql+"]时出现异常!具体异常信息为: "+e.getMessage());
}
[/code]
现在的问题就如注释,我需要在此封装类外使用这个方法,取完ResultSet的值后,需要关闭ResultSet以及Statement,不然创建的太多会大大影响性能。
请大家帮我看看,给我个解决方法,如果有好的JDBC封装类的话,发个给我,感激不尽,谢谢!