有关ResultSet关闭数据库的一个问题,用过C#可能会更加理解

kroda 2008-08-26 12:43:59
C#里有这样一段代码
SqlDataReader read = sqlCom.ExecuteReader(CommandBehavior.CloseConnection);

意思也是返回一个结果集,跟ResultSet是一样的概念,但是在返回结果之前可以设置一个参数CommandBehavior.CloseConnection,他就是说可以在关闭ResultSet时同时关闭连接Connection对象的连接

那JAVA里有没有这样的东西,我结果集一关自动的preparedStatement,Connection也一同关了?

因为已经写好一个现成的类了

public ResultSet GetResultSet(String sql,Object[] params)
{
conn=this.getConn();
if(conn==null){
return null;
}else
{
try {
pstmt=conn.prepareStatement(sql);
if(params!=null)
{
for(int i=0;i<params.length;i++)
{
pstmt.setObject(i+1, params[i]);
}
}

rs=pstmt.executeQuery();
return rs;
} catch (SQLException e) {
e.printStackTrace();
return null;
}finally
{
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}

}
}

这样一个方法主要是想让调用者不尽量少的进行数据库的开、关 想让这个方法都搞定了
...全文
55 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixu1845270 2009-03-01
  • 打赏
  • 举报
回复
楼主啊 我也这个问题
想到了好方法 顺教小弟
谢谢
funcreal 2008-08-26
  • 打赏
  • 举报
回复
如果你在遍历结果集之前就关闭了数据库链接的话你还能遍历吗?
你运行的话难道不报错?

正确的方法是使用完以后先关闭结果集,然后关闭语句,然后关闭数据库链接。但有的时候并非如此。有些业务逻辑可能多次查询都使用同一条数据库链接,例如:批量上传数据。还有的可能会重复使用同一个语句。

最后,使用数据库连接池才是王道。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧