求帮助,jsp使用Java类时出现空指针错误,谢谢!

haiyantai 2013-09-23 11:34:02
<%@page import="java.sql.*"%>
<%@page import="servlet.DBConnect"%>
<% DBConnect db=new DBConnect();
ResultSet result=db.executeQuery("select * from mapdata");
%>

然后,下面是DBConnect类代码
package servlet;
import java.sql.*;


public class DBConnect
{
public static final String driver="com.mysql.jdbc.Driver";
public static final String url="jdbc:mysql://localhost:3306/mydata";
public static final String user="root";
public static final String password="2224101360";
ResultSet resultset=null;
PreparedStatement statement=null;
Connection conn=null;

public Connection getConnection()
{ try{Class.forName(driver);
return DriverManager.getConnection(url,user,password);
}
catch(ClassNotFoundException e){System.out.println("Driver not found");return null;}
catch(SQLException e){System.out.println("Error:"+e.getMessage());return null;}
}

public ResultSet executeQuery(String sql) throws Exception
{
conn=this.getConnection();
statement=conn.prepareStatement(sql);
return resultset=statement.executeQuery();
}
public int executeUpdate(String sql)
{
try{
conn=this.getConnection();
statement=conn.prepareStatement(sql);
return statement.executeUpdate();

}catch(Exception e){System.out.println("Error:"+e.getMessage());return 0;}
}
public void closeAll() throws Exception
{
if(null!=resultset) resultset.close();
if(null!=statement) statement.close();
if(null!=conn) conn.close();

}
public DBConnect() {}
...全文
122 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
haiyantai 2013-09-23
  • 打赏
  • 举报
回复
嗯,我试了下,刚才那个空指针错误没了,不过有其他错误,可能是我其他的代码还有问题,谢谢啦!
枫醉秋 2013-09-23
  • 打赏
  • 举报
回复
把mysql的驱动包放到\WEB-INF\lib下去试试
haiyantai 2013-09-23
  • 打赏
  • 举报
回复
刚才那个有点错误 package servlet; import java.sql.*; public class DBConnect { public static final String driver="com.mysql.jdbc.Driver"; public static final String url="jdbc:mysql://localhost:3306/mydata"; public static final String user="root"; public static final String password="2224101360"; ResultSet resultset=null; PreparedStatement statement=null; Connection conn=null; public Connection getConnection() { try{Class.forName(driver); return DriverManager.getConnection(url,user,password); } catch(ClassNotFoundException e){System.out.println("Driver not found");return null;} catch(SQLException e){System.out.println("Error:"+e.getMessage());return null;} } public ResultSet executeQuery(String sql) throws Exception { conn=this.getConnection(); statement=conn.prepareStatement(sql); return resultset=statement.executeQuery(); } public int executeUpdate(String sql) { try{ conn=this.getConnection(); statement=conn.prepareStatement(sql); return statement.executeUpdate(); }catch(Exception e){System.out.println("Error:"+e.getMessage());return 0;} } public void closeAll() throws Exception { if(null!=resultset) resultset.close(); if(null!=statement) statement.close(); if(null!=conn) conn.close(); } public DBConnect() {} public static void main(String[] args) { try{ servlet.DBConnect db=new servlet.DBConnect(); //int i=db.executeUpdate("insert into userinfo values (2,'wangqiang','123')"); ResultSet result=db.executeQuery("select * from mapdata"); System.out.println("-----------Result-------------"); System.out.println("username:"+"\t"+"password"); while(result.next()) { System.out.println(result.getFloat("lng")+"\t"+result.getFloat("lat")); } }catch(Exception e) {System.out.println(e.getMessage());} } }
haiyantai 2013-09-23
  • 打赏
  • 举报
回复
这样运行没有错 package servlet; import java.sql.*; public class DBConnect { public static final String driver="com.mysql.jdbc.Driver"; public static final String url="jdbc:mysql://localhost:3306/mydata"; public static final String user="root"; public static final String password="2224101360"; ResultSet resultset=null; PreparedStatement statement=null; Connection conn=null; public Connection getConnection() { try{Class.forName(driver); return DriverManager.getConnection(url,user,password); } catch(ClassNotFoundException e){System.out.println("Driver not found");return null;} catch(SQLException e){System.out.println("Error:"+e.getMessage());return null;} } public ResultSet executeQuery(String sql) throws Exception { conn=this.getConnection(); statement=conn.prepareStatement(sql); return resultset=statement.executeQuery(); } public int executeUpdate(String sql) { try{ conn=this.getConnection(); statement=conn.prepareStatement(sql); return statement.executeUpdate(); }catch(Exception e){System.out.println("Error:"+e.getMessage());return 0;} } public void closeAll() throws Exception { if(null!=resultset) resultset.close(); if(null!=statement) statement.close(); if(null!=conn) conn.close(); } public DBConnect() {} public static void main(String[] args) { try{ servlet.DBConnect db=new servlet.DBConnect(); //int i=db.executeUpdate("insert into userinfo values (2,'wangqiang','123')"); //ResultSet result=db.executeQuery("select * from mapdata"); ResultSet result=db.doGetMapData(); System.out.println("-----------Result-------------"); System.out.println("username:"+"\t"+"password"); while(result.next()) { System.out.println(result.getFloat("lng")+"\t"+result.getFloat("lat")); } }catch(Exception e) {System.out.println(e.getMessage());} } }
效林少爷 2013-09-23
  • 打赏
  • 举报
回复
引用 2 楼 scqlmm 的回复:
这个空指针有可能是你在去得连接的时候失败了,造成conn为null了
同感
haiyantai 2013-09-23
  • 打赏
  • 举报
回复
但是我在单独的DBConnect类测试的时候没有问题
haiyantai 2013-09-23
  • 打赏
  • 举报
回复
好的,type Exception report message An exception occurred processing JSP page /success.jsp at line 18 description The server encountered an internal error that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: An exception occurred processing JSP page /success.jsp at line 18 15: </head> 16: <body> 17: <% DBConnect db=new DBConnect(); 18: ResultSet result=db.executeQuery("select * from mapdata"); 19: %> 20: <div id="allmap"></div> 21: </body> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) root cause java.lang.NullPointerException servlet.DBConnect.executeQuery(DBConnect.java:26) org.apache.jsp.success_jsp._jspService(success_jsp.java:81) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.42 logs.
枫醉秋 2013-09-23
  • 打赏
  • 举报
回复
这个空指针有可能是你在去得连接的时候失败了,造成conn为null了
枫醉秋 2013-09-23
  • 打赏
  • 举报
回复
把错误贴出来看看

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧