一个关于关闭资源的问题

wwwmaster 2004-09-20 08:01:47
package sql;
import java.sql.*;

public class data{
String sDBDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sConnStr = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bsoa";
String username="bgzdh";
String password="thwhgf*oa*sjzx";
Connection conn = null;
ResultSet rs = null;

public data() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("bbsreg(): " + e.getMessage());
}
}

public ResultSet executeQuery(String sql) {
rs = null;
try {
conn = DriverManager.getConnection(sConnStr,username,password);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
System.err.println("aq.executeQuerystrSQL: " + sql);
}
return rs;
}


public boolean executeUpdate(String sql) {
try {
conn = DriverManager.getConnection(sConnStr,username,password);
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
return true;
}
catch(SQLException ex) {
System.err.println("aq.executeUpdate: " + ex.getMessage());
System.err.println("aq.executeUpadatestrSQL: " + sql);
return false;
}
}
public void closeConnection()
{
try
{
stmt.close();
conn.close();
}
catch(Exception e)
{
System.out.println("Close Connection Error: "+e.toString());
}
}



}

问题是这样的,我在jsp页面调用这个类时,
我在页面写上sql.closeConnection();关闭资源
请问stmt.close();

conn.close();
一起每次都得关闭吗? 是不是不用都关闭啊,如果不都关闭一般都关闭哪个呢?谢谢!
...全文
117 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cobrahan 2004-09-20
恩,必须关,不然会出现问题
回复
rosifox 2004-09-20
先关闭ResultSet,再关闭Statement,再关闭Connection
回复
wwwmaster 2004-09-20
那关闭的顺序是什么呢?缓冲池该怎么做呢?你有现成的吗?我很急啊
回复
rosifox 2004-09-20
全部都要关闭,注意关闭顺序
另:如果你的页面的访问量比较大的话,最好还是用
缓冲池
回复
wwwmaster 2004-09-20
关键是几乎每个页面都用到了,那是不是每个页面都得关啊
回复
Tasia 2004-09-20
ResultSet, Statement, Connection用完后都得明确地关闭。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-20 08:01
社区公告
暂无公告