visit Access Database error
I use JSP to visit Access Database by using ODBC.I put code of visiting Access Database in JavaBean.
JavaBean code is follows:
/*sql.java*/
package common;
import java.sql.*;
public class sql {
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:JSP";
Connection conn=null;
Statement stmt;
ResultSet rs=null;
public sql() {
try{
Class.forName(sDBDriver);
}
catch(ClassNotFoundException e){
System.err.println("open database error:"+e.getMessage());
}
}
public ResultSet executeQuery(String sql){
try{
conn=DriverManager.getConnection(sConnStr);
stmt=conn.createStatement();
rs=stmt.executeQuery(sql); //33th line
}
catch(SQLException ex){
ex.printStackTrace();
}
return rs;
}
}
The I call this JavaBean from JSP,but I found a puzzling thing,when I first time call JavaBean,it can visited Access Database,but when I second time to call JavaBean,I found it can't visited Access Database,like follows:
<%jsp:userBean id="jsp" scope="session" class="common.sql"%>
...
String sql="insert into test(a1,a2) values ('a','b')";
ResultSet rs=jspEx.executeQuery(sql); //first time,it can visit Access Database
rs.close();
sql="select * from test";
rs=jspEx.executeQuery(sql); //second time,it can't visit Access Database
java.sql.SQLException: No ResultSet was produced
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcO dbcStatement.java:259)
at common.sql.executeQuery(sql.java:33)
at java.lang.Thread.run(Thread.java:536)
Why?
Any idea will be appreciated!
Edward
|