回 帖 发 新 帖 刷新版面

主题:用jsp的BEAN连接mysql数据库出错,请大虾帮忙!!!

这个问题都困扰我好多天,一直找不出错误所在,请各位大虾帮忙.[em10][em10]
使用的是resin2。1。7及MYSQL4.0。环境变量中的classpath中也加了MYSQLODBC的JAR包。
调用的BEAN:在class下的test目录下.
package test;
import java.sql.*;
public class dbconn {
 public dbconn() {
   }
 //declare variable
 private Connection conn = null;
 ResultSet rs = null;
 private String server = "127.0.0.1";
 String port = "3306";
 private String db = "test";
 private String user = "root";
 private String pass = "password";
 private String drivername="com.mysql.jdbc.Driver";
 private String URL="jdbc:mysql://"+server+":"+port+"/"+db+"?user="+user+"&password="+pass;

 public Connection getConn(){//get database connection
  try{
   Class.forName(drivername).newInstance();
   conn = DriverManager.getConnection(URL);
  }
  catch(Exception e){
   e.printStackTrace();
  }
   return this.conn;
 }

 public void setServer(String str) {//set server name
  server=str;
 
 }

 public void setPort(String str) {//set server port
  this.port = str;
 }

  public void setDB(String str) {//set db name
  db = str;
 }

 public void setUser(String str) {//set user name
  user = str;
 }

 public void setPass(String str) {//set user name
  pass = str;
 }

 public ResultSet executeSQL(String str) {
  try{
   Statement stmt = conn.createStatement();
   rs = stmt.executeQuery(str);
  }
  catch(Exception e){
   e.printStackTrace();
  }
   return this.rs;
 } 
}

//调用Java Bean的JSP文件testDb.jsp
<%@ page contentType="text/html;charset=gb2312" import="java.sql.*"%>
<jsp:useBean id="tsDb" scope="page" class="test.dbconn" />
<%
ResultSet rs = null;
Connection conn = null;
tsDb.setServer("127.0.0.1");  //设置MySQL的服务器名或者IP
tsDb.setPort("3306");            //设置MySQL的监听端口
tsDb.setDB("test");                //设置MySQL的数据库名
tsDb.setUser("root");             //设置连接MySQL的用户名
tsDb.setPass("852");      //设置连接MySQL的密码
conn = tsDb.getConn() ;
rs = tsDb.executeSQL("select * from test");
while(rs.next()) {
%>
    Row:<%=rs.getString(1)%>
<%}%>
<%out.print("Successful!\n");%>   
<%
rs.close();
conn.close();
%>
可运行后老是出现下面的错误:
500 Servlet Exception
java.lang.NullPointerException
    at _testdb__jsp._jspService(/testdb.jsp:14)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
    at com.caucho.jsp.Page.subservice(Page.java:497)
    at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
    at com.caucho.server.http.Invocation.service(Invocation.java:315)
    at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
    at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
    at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
    at java.lang.Thread.run(Thread.java:534)


--------------------------------------------------------------------------------
Resin 2.1.7 (built Fri Feb 14 12:48:13 PST 2003)

回复列表 (共3个回复)

沙发

rs = tsDb.executeSQL("select * from test");
这句应该是:rs = tsDb.executeQuery("select * from test");

板凳

我在bean中建了一个executeSQL(String str)类,在这里有rs = tsDb.executeQuery("select * from test");语句,不在在这里用的是否正确?还有就是在测试中我发现CONN及RS都是NULL,好像就没有调用Bean,可我在这个环境中运用别的BEAN都能准确调用,就是数据库不行,请大家再给看看,到底问题出在那.谢谢啊[em18][em10]

3 楼

add
try{}catch(SQLException e){out.println(e.getMessage());}

我来回复

您尚未登录,请登录后再回复。点此登录或注册