读书人

关于JDBC的异常。求好心人帮忙解决

发布时间: 2012-05-03 14:06:56 作者: rapoo

关于JDBC的错误。。急,急,求好心人帮忙解决
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.javaBean.Conn.executeQuery(Conn.java:42)
at org.apache.jsp.personal_jsp._jspService(personal_jsp.java:98)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
at java.lang.Thread.run(Unknown Source)


JSP页面:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<jsp:useBean id="Conn" class="com.javaBean.Conn" scope="page"/>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page import="java.sql.*" %>
<html>
? <head>
? <base href="<%=basePath%>">
<meta http-equiv="Content-type" content="text/html;charset=gbk">
? <title>My JSP 'Cone.jsp' starting page</title>
? ?
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0"> ?
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

? </head>
??
? <body>
?
? <%
? ResultSet rs=Conn.executeQuery("select *from wws");
? out.println("<table border='1' align='center'>");
? out.println("<tr><td>name</td><td>age</td><td>sex</td></tr>");
? while (rs.next()){
? out.println("<tr><td>"+rs.getString("name")+"</td><td>"+rs.getString("age")+"</td><td>"
? +rs.getString("sex")+"</td></tr>");}
? out.println("</table>");


? %>
? </body>
</html>


javaBean:
package com.javaBean;
?import java.io.PrintWriter;
import java.sql.*;
import java.util.*;

public class Conn?
{
? String strDBDriver="com.mysql.jdbc.Driver"; //驱动程序名
String strConnectionString="jdbc:mysql://localhost/UserInfo?user=root&password=123321";
? //数据库名
? ?
? Connection conn=null; //数据库连接对象
? Statement stmt=null; //数据库语句对象
? PrintWriter out = null;
? ResultSet rs=null;
? ?
? // 建立数据库连接
? public void Conn(){
? try {
? Class.forName(strDBDriver);
? conn=DriverManager.getConnection(strConnectionString); //获得数据库连接
? stmt=conn.createStatement();
? } catch(ClassNotFoundException e) {
? ?
? System.out.println("数据库连接失败!");
? }catch(SQLException e){System.out.println("数据库连接失败!");}
? }
? ?
? ?
? public void executeUpdate(String sql) throws Exception{
? sql= new String(sql.getBytes("gb2312"));
? try{
? stmt.executeUpdate(sql);
? }catch(SQLException e){System.out.println("数据库连接失败!");}
? ?
? }
? public ResultSet executeQuery(String sql) throws Exception{
? rs=null;
?
try{
sql= new String(sql.getBytes("gb2312"));
rs=stmt.executeQuery(sql);
}
catch(SQLException e){System.out.println("数据库连接失败!");}
return rs;
}
? protected void finalize()throws Throwable{
super.finalize();
stmt.close();
conn.close();
? }
?
? ?
?
??
??
? }






[解决办法]
很明显是conn为null.是因为在调用Conn.executeQuery("select *from wws");
Conn为null,没有实例化。才会java.lang.NullPointerException
而你实例化conn方法又是public void Conn()方法,你根本就没有调用这个方法。
[解决办法]

探讨
很明显是conn为null.是因为在调用Conn.executeQuery("select *from wws");
Conn为null,没有实例化。才会java.lang.NullPointerException
而你实例化conn方法又是public void Conn()方法,你根本就没有调用这个方法。

[解决办法]
java.lang.NullPointerException
at com.javaBean.Conn.executeQuery(Conn.java:42)
空指针嘛,conn没有初始化就在调用方法来,
改成
static{
try {
? Class.forName(strDBDriver);
? conn=DriverManager.getConnection(strConnectionString); //获得数据库连接
? stmt=conn.createStatement();
? } catch(ClassNotFoundException e) {
? ?
? System.out.println("数据库连接失败!");
? }catch(SQLException e){System.out.println("数据库连接失败!");}

}
[解决办法]
探讨

引用:

java.lang.NullPointerException
at com.javaBean.Conn.executeQuery(Conn.java:42)
空指针嘛,conn没有初始化就在调用方法来,
改成
static{
try {
Class.forName(strDBDriver);
conn=DriverManager.getConnect……

读书人网 >Java Web开发

热点推荐