其实先声明我也是个新手,只是在这个问题的解决上我花了很多时间,走了很多弯路,所以不想让大家也像我一样了
一般来说,为了方便开发和代码重用,JSP中连接数据库的代码是单独放在一个BEAN中的(至少我是这么做的),就像ASP中有个专门用于数据库连接的ASP文件一样。
以下是我写的数据库查询函数:
public ResultSet dbQuery(String strSql){
rs=null;
try{
conn=DriverManager.getConnection(dbConn);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(strSql);
}
catch(SQLException e){
System.err.println("Can not open the DB!/n");
System.err.println(e.getMessage());
}
return rs;
}
以前如果有和我一样习惯的人可要注意了。
发现这个问题之前我写的查询函数并没有返回值,而总是将直接使用。哪知却犯了一个很大而且很可笑的错误:返回的居然是一个NULL!!
细细想来,应该是局部变量的原因。嗯,确实有点打击人。以下是正确的代码应用:
<jsp:useBean id="db" class="dingsea.dbOperat" scope="page"/>
<%
ResultSet rs=db.dbQuery("select * from man");
try{
while(rs.next()){
out.println(rs.getString("id")+":");
out.println(rs.getString("name")+" | ");
out.println(rs.getString("tel")+" |"+"<br>");
}
}
catch(Exception e){
out.println(e.getMessage()+"/n");
}
rs.close();
%>