为何 stmt = conn.createStatement();老是异常抛出,怪事? NullPointException异常?看看conn是不是null 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下面是有问题的源代码:import ...public class test {Connection conn;public Vector getDataKenl(String sql) { Vector father = new Vector(); Vector vecDate = new Vector(); ResultSet sres = null; Statement stmt; Boolean opStatus = new Boolean(true); try{////////////////////////////////////////////有问题的语句 stmt = conn.createStatement();///////////////////////////////////////// sql = new String(sql.getBytes(),"ISO-8859-1"); sres = stmt.executeQuery(sql); vecDate = resultToVector(sres); sres.close(); stmt.close(); father.addElement(opStatus); father.addElement(vecDate); } catch (SQLException ex) { opStatus = Boolean.valueOf("false"); father.addElement(opStatus); father.addElement(Integer.toString(ex.getErrorCode())); System.out.println(ex.toString()); }catch (UnsupportedEncodingException e) { System.out.println(e.toString()); } return father; }} 你没有连数据库,conn是空,应该先连接数据库再用stmt = conn.createStatement(); 链了数据库,但是还是出错import ...public class test {Connection conn;public Vector getDataKenl(String sql) { Vector father = new Vector(); Vector vecDate = new Vector(); ResultSet sres = null; Statement stmt; Boolean opStatus = new Boolean(true); //连接数据库后,conn 为空值 conn = DbConnectionPool.getAConnection(); try{////////////////////////////////////////////有问题的语句 stmt = conn.createStatement();///////////////////////////////////////// sql = new String(sql.getBytes(),"ISO-8859-1"); sres = stmt.executeQuery(sql); vecDate = resultToVector(sres); sres.close(); stmt.close(); father.addElement(opStatus); father.addElement(vecDate); } catch (SQLException ex) { opStatus = Boolean.valueOf("false"); father.addElement(opStatus); father.addElement(Integer.toString(ex.getErrorCode())); System.out.println(ex.toString()); }catch (UnsupportedEncodingException e) { System.out.println(e.toString()); } return father; }} 连接数据库的可能就有问题,conn是空值就是没有连正确. 你在DataBase Pilot配数据库驱动程序没有? 判断一下conn是否是null吧。另:把错误信息也贴出来 根本错误-1: nulljava.lang.NullPointerException java.lang.Throwable() java.lang.Exception() java.lang.RuntimeException() java.lang.NullPointerException() java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String) java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String) java.util.Vector com.cbe.base.DBQuery.getData(java.lang.String) void upgrade.ROOT._login_xjsp._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) void com.sun.jsp.runtime.HttpJspBase.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) void com.sun.jsp.runtime.JspServlet$JspServletWrapper.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) void com.ibm.ivj.jsp.runtime.JspDebugServlet.serviceJspFile(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable) void com.sun.jsp.runtime.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) void com.ibm.servlet.engine.webapp.StrictServletInstance.doService(javax.servlet.ServletRequest, javax.servlet.ServletResponse) void com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) void com.ibm.servlet.engine.webapp.IdleServletState.service(com.ibm.servlet.engine.webapp.StrictLifecycleServlet, javax.servlet.ServletRequest, javax.servlet.ServletResponse) void com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) void com.ibm.servlet.engine.webapp.ServletInstance.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse, com.ibm.servlet.engine.webapp.WebAppServletInvocationEvent) void com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(com.ibm.servlet.engine.webapp.ServletInstanceReference, javax.servlet.ServletRequest, javax.servlet.ServletResponse, com.ibm.servlet.engine.webapp.WebAppServletInvocationEvent) void com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(javax.servlet.ServletRequest, javax.servlet.ServletResponse, com.ibm.servlet.engine.webapp.WebAppServletInvocationEvent) void com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(com.ibm.servlet.engine.webapp.WebAppRequest, javax.servlet.http.HttpServletResponse, boolean) void com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(javax.servlet.ServletRequest, javax.servlet.ServletResponse, boolean) void com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) void com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(java.lang.Object) void com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(java.lang.Object) void com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(java.lang.String, com.ibm.servlet.engine.srp.ISRPConnection) void com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(com.ibm.servlet.engine.oselistener.api.IOSEConnection) void com.ibm.servlet.engine.http_transport.HttpTransportHandler.handleConnection(java.net.Socket) void com.ibm.servlet.engine.http_transport.HttpTransportHandler.run() void java.lang.Thread.run() java.lang.NullPointerException java.lang.Throwable() java.lang.Exception() java.lang.RuntimeException() java.lang.NullPointerException() java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String) java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String) java.util.Vector com.cbe.base.DBQuery.getData(java.lang.String) 将conn定义成类的成员变量是不合适的, 最好定义在方法中,最后用完后在finally中将它关闭。 DbConnectionPool.getAConnection()这个能不能连到数据库呢?你有没有测试过。 Connection conn=DriverManager.getConnection(sConnStr);我这里SConnStr是数据库源,例如String sConnStr="jdbc:odbc:xing";你只是创建Connection对象,但不赋值怎么行 HELP: Timer定时执行任务的问题 javascript 判断对象为空 本人有一套bbs论坛 小白提问最简单的servlet程序的几个小问题 您一定能帮我 [求助]用Servlet产生验证码出错,请求帮助!!!! pc机向手机发短信的问题 如何让一个东西在整个会话期间存在???????? tomcat里我的servlet怎么运行不了? 在ie5.5中下载安装支持swing的plug-in时出现错误! HttpClient Cookie问题 在JSP里得到当前的物理路径的函数是那个?? servlet为什么会抛出这个错误java.lang.NullPointerException?
import ...
public class test {
Connection conn;
public Vector getDataKenl(String sql) {
Vector father = new Vector();
Vector vecDate = new Vector();
ResultSet sres = null;
Statement stmt;
Boolean opStatus = new Boolean(true);
try{
//////////////////////////////////////////
//有问题的语句
stmt = conn.createStatement();
/////////////////////////////////////////
sql = new String(sql.getBytes(),"ISO-8859-1");
sres = stmt.executeQuery(sql);
vecDate = resultToVector(sres);
sres.close();
stmt.close();
father.addElement(opStatus);
father.addElement(vecDate); } catch (SQLException ex) {
opStatus = Boolean.valueOf("false");
father.addElement(opStatus); father.addElement(Integer.toString(ex.getErrorCode())); System.out.println(ex.toString());
}catch (UnsupportedEncodingException e) {
System.out.println(e.toString());
}
return father;
}
}
应该先连接数据库再用stmt = conn.createStatement();
public class test {
Connection conn;
public Vector getDataKenl(String sql) {
Vector father = new Vector();
Vector vecDate = new Vector();
ResultSet sres = null;
Statement stmt;
Boolean opStatus = new Boolean(true);
//连接数据库后,conn 为空值
conn = DbConnectionPool.getAConnection();
try{
//////////////////////////////////////////
//有问题的语句
stmt = conn.createStatement();
/////////////////////////////////////////
sql = new String(sql.getBytes(),"ISO-8859-1");
sres = stmt.executeQuery(sql);
vecDate = resultToVector(sres);
sres.close();
stmt.close();
father.addElement(opStatus);
father.addElement(vecDate); } catch (SQLException ex) {
opStatus = Boolean.valueOf("false");
father.addElement(opStatus); father.addElement(Integer.toString(ex.getErrorCode())); System.out.println(ex.toString());
}catch (UnsupportedEncodingException e) {
System.out.println(e.toString());
}
return father;
}
}
另:把错误信息也贴出来
java.lang.Throwable()
java.lang.Exception()
java.lang.RuntimeException()
java.lang.NullPointerException()
java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String)
java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String)
java.util.Vector com.cbe.base.DBQuery.getData(java.lang.String)
void upgrade.ROOT._login_xjsp._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void com.sun.jsp.runtime.HttpJspBase.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.sun.jsp.runtime.JspServlet$JspServletWrapper.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void com.ibm.ivj.jsp.runtime.JspDebugServlet.serviceJspFile(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable)
void com.sun.jsp.runtime.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.ibm.servlet.engine.webapp.StrictServletInstance.doService(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.ibm.servlet.engine.webapp.IdleServletState.service(com.ibm.servlet.engine.webapp.StrictLifecycleServlet, javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.ibm.servlet.engine.webapp.ServletInstance.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse, com.ibm.servlet.engine.webapp.WebAppServletInvocationEvent)
void com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(com.ibm.servlet.engine.webapp.ServletInstanceReference, javax.servlet.ServletRequest, javax.servlet.ServletResponse, com.ibm.servlet.engine.webapp.WebAppServletInvocationEvent)
void com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(javax.servlet.ServletRequest, javax.servlet.ServletResponse, com.ibm.servlet.engine.webapp.WebAppServletInvocationEvent)
void com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(com.ibm.servlet.engine.webapp.WebAppRequest, javax.servlet.http.HttpServletResponse, boolean)
void com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(javax.servlet.ServletRequest, javax.servlet.ServletResponse, boolean)
void com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(java.lang.Object)
void com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(java.lang.Object)
void com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(java.lang.String, com.ibm.servlet.engine.srp.ISRPConnection)
void com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(com.ibm.servlet.engine.oselistener.api.IOSEConnection)
void com.ibm.servlet.engine.http_transport.HttpTransportHandler.handleConnection(java.net.Socket)
void com.ibm.servlet.engine.http_transport.HttpTransportHandler.run()
void java.lang.Thread.run()
java.lang.Throwable()
java.lang.Exception()
java.lang.RuntimeException()
java.lang.NullPointerException()
java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String)
java.util.Vector com.cbe.base.DBQuery.getDataKenl(java.lang.String)
java.util.Vector com.cbe.base.DBQuery.getData(java.lang.String)
这个能不能连到数据库呢?你有没有测试过。
我这里SConnStr是数据库源,例如
String sConnStr="jdbc:odbc:xing";你只是创建Connection对象,但不赋值怎么行