主题:用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)
使用的是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)