超级郁闷:为什么用了JavaBean之后,老是出错呢?
出错信息为:
/*
Operation not allowed after ResultSet closed
*/
数据库方面肯定没有问题
(因为不用JavaBean就没问题)
1.JavaBean文件为:
package mysql;
import java.sql.*;
public class Jdbc_conn{
String sDBDriver="org.gjt.mm.mysql.Driver";
String sConnStr="jdbc:mysql://localhost:3306/test";
Connection conn=null;
ResultSet rs=null;
public Jdbc_conn(){
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
System.out.println("Jdbc_conn():"+e.getMessage());
}
}
public ResultSet executeQuery(String sql)throws Exception{
rs=null;
try{
sql=new String(sql.getBytes("GBK"),"ISO8859_1");
conn=DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
conn.close();
stmt.close();
}
catch(SQLException ex){
System.out.println("sql.executeQuery:"+ex.getMessage());
}
return rs;
}
}
2.JSP中相关部分的文件为:
<jsp:useBean id="sql_conn" scope="page" class="mysql.Jdbc_conn" />
<%
ResultSet rs=sql_conn.executeQuery("select * from client");
%> <%
//利用while循环将数据表中的记录列出
while(rs.next()){
%>
<TR bgcolor="Yellow">
<TD><FONT SIZE=2><B><%=rs.getString("Number")%></B></FONT></TD>
<TD><FONT SIZE=2><B><%=rs.getString("Client")%></B></FONT></TD>
<TD><FONT SIZE=2><B><%=rs.getString("City")%></B></FONT></TD>
</TR>
<%
}
rs.close();//关闭ResultSet对象
//stmt.close();//关闭Statement对象
//con.close();//关闭Connection对象
%>