为什么我一用就出现ResultSet已经关闭的错误?
在我自己的一个包里面我定义了数据库的连接和ResultSet的取值,但是一运行就报错说我的ResultSet已经关闭,请问为什么?
下面是我的jsp中使用到的几个语句:
<%
tree mytree =new tree(response);
mytree.test();
mytree.close();
%>
在我的java文件中是这样的:
package tree;
import java.sql.*;
import java.io.*;
import javax.servlet.http.HttpServletResponse;
public class tree
{
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:topics";
Connection conntemp = null;
ResultSet rs;
PrintWriter out = null;
ResultSet rsTest;
public tree(HttpServletResponse resp)
{
try
{
out=resp.getWriter();
}
catch (Exception e)
{
System.out.println("test():" + e.getMessage());
}
}
ResultSet executeQuery(String sql)
{
try
{
Class.forName(sDBDriver);
conntemp = DriverManager.getConnection(sConnStr);
Statement stmt = conntemp.createStatement();
//rs = stmt.getResultSet();
rs =stmt.executeQuery(sql);
stmt.close();
}
catch (Exception e)
{
System.out.println("aq.executeQuery: " + e.getMessage());
}
return rs;
}
public void close()
{
try {
conntemp.close();
rs.close();
//rsSubtopics.close();
//rsMainTopic.close();
//rsTest.close();
}
catch (Exception ex) {
System.out.println("ax0.exception: " + ex.getMessage());
}
}
public void test()
{
rsTest = executeQuery("Select * from topic");
try {
System.out.println (rsTest.getRow());
}
catch (Exception ex) {
System.out.println("Rs error: " + ex.getMessage());
}
}
}