这种错误: java.lang.NullPointerException at db.DbConnection.executeQuery(DbConnection.java:61) at org.apache.jsp.regok$jsp._jspService(regok$jsp.java:147) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:536)源程序: package db;import java.util.*; import java.sql.*; import java.io.*;public class DbConnection{ Connection conn = null; Statement stmt = null; ResultSet rset = null; public DbConnection(){ } /************************************************ * openConnection * read file "db.txt" ************************************************/ public boolean openConnection(){ Properties prop = new Properties(); try{ InputStream is = getClass().getResourceAsStream("db.txt"); prop.load(is); if(is != null) is.close(); }catch(IOException e){ System.out.println("[DbConnection] Open db.txt File, Error!"); } String jdbc = prop.getProperty("driver"); String uri = prop.getProperty("url"); //System.out.println("jdbc=[" + jdbc + "]"); //System.out.println("uri=[" + uri + "]"); try{ Class.forName(jdbc).newInstance(); }catch(ClassNotFoundException e){ System.out.println("JDBC login, Error!@" + e.getMessage()); return false; }catch (Exception e){ System.err.println("Unable to load driver!"); e.printStackTrace(); } try{ this.conn = DriverManager.getConnection (uri); }catch(SQLException e){ System.out.println("Generate Connection, Error!" + e.getMessage()); return false; } return true; } /************************************************* * executeQuery and executeUpdate * query and update DB *************************************************/ public ResultSet executeQuery(String query) throws SQLException{ stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); rset = stmt.executeQuery(query); return rset; } public void executeUpdate(String query) throws SQLException{ stmt = conn.createStatement(); stmt.executeUpdate(query); if(stmt != null) stmt.close(); } public void close() throws SQLException{ if(conn != null) conn.close(); if(rset != null) rset.close(); if(stmt != null) stmt.close(); } protected void finalize() throws Throwable{ close(); } public static void main(String[] args){ //Design for test purpose. DbConnection dc = new DbConnection(); System.out.println(dc.openConnection()); }}
java.lang.NullPointerException at db.DbConnection.executeQuery(DbConnection.java:61) 你的sql语句再哪里给出了? query在那里付值了?
通常代表得到一个对象前使用它!
具体哪个就要你自己分析了,没看到你的程序源码
你又使用了这个变量!
你将变量输出来看看!
java.lang.NullPointerException
at db.DbConnection.executeQuery(DbConnection.java:61)
at org.apache.jsp.regok$jsp._jspService(regok$jsp.java:147)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:536)源程序:
package db;import java.util.*;
import java.sql.*;
import java.io.*;public class DbConnection{
Connection conn = null;
Statement stmt = null;
ResultSet rset = null; public DbConnection(){
} /************************************************
* openConnection
* read file "db.txt"
************************************************/
public boolean openConnection(){
Properties prop = new Properties();
try{
InputStream is = getClass().getResourceAsStream("db.txt");
prop.load(is);
if(is != null) is.close();
}catch(IOException e){
System.out.println("[DbConnection] Open db.txt File, Error!");
} String jdbc = prop.getProperty("driver");
String uri = prop.getProperty("url"); //System.out.println("jdbc=[" + jdbc + "]");
//System.out.println("uri=[" + uri + "]"); try{
Class.forName(jdbc).newInstance();
}catch(ClassNotFoundException e){
System.out.println("JDBC login, Error!@" + e.getMessage());
return false;
}catch (Exception e){
System.err.println("Unable to load driver!");
e.printStackTrace();
} try{
this.conn = DriverManager.getConnection (uri);
}catch(SQLException e){
System.out.println("Generate Connection, Error!" + e.getMessage());
return false;
}
return true; }
/*************************************************
* executeQuery and executeUpdate
* query and update DB
*************************************************/
public ResultSet executeQuery(String query) throws SQLException{
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rset = stmt.executeQuery(query);
return rset;
} public void executeUpdate(String query) throws SQLException{
stmt = conn.createStatement();
stmt.executeUpdate(query);
if(stmt != null) stmt.close();
} public void close() throws SQLException{
if(conn != null) conn.close();
if(rset != null) rset.close();
if(stmt != null) stmt.close();
} protected void finalize() throws Throwable{
close();
} public static void main(String[] args){
//Design for test purpose.
DbConnection dc = new DbConnection();
System.out.println(dc.openConnection());
}}
at db.DbConnection.executeQuery(DbConnection.java:61)
你的sql语句再哪里给出了? query在那里付值了?
你应当判断参数是否为NULL??
可以先把参数打印出来看看结构