有关java.lang.NullPointerException错误的问题

小瑾~ 2008-09-22 03:33:41
代码如下:
public static boolean validate(String username,String password)
{
boolean bool=false;

try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch(java.lang.ClassNotFoundException e)
{
System.out.print("Class not found error occur.Message is:");
System.out.print(e.getMessage());
}

try
{
Statement stmt=null;
ResultSet rs;
String url="jdbc:mysql://localhost:3306/student";
String user="root";
String passwordOfDB="summer";
Connection conn=null;
try
{
conn=DriverManager.getConnection(url,user,passwordOfDB);
}
catch(Exception ex){ex.printStackTrace();}
String sql="select * from userinfo where username='"+username+"'and password='"+password+"'";
stmt=(Statement)conn.createStatement();
rs=(ResultSet)stmt.executeQuery(sql);

if(rs.next())
bool=true;
else
bool=false;

}
catch(SQLException e)
{
System.out.print("SQL Exception occur.Message is:");
System.out.print(e.getMessage());
}
return bool;
}
产生的错误:
exception

java.lang.NullPointerException
mypack.SQLQuery.validate(SQLQuery.java:38)
mypack.CheckA.doPost(CheckA.java:43)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

上面的代码是SQLQuery.java中的,我被这个问题困扰将近一天了,始终是不知道该怎样解决?
...全文
168 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunyetui 2008-09-22
  • 打赏
  • 举报
回复
No suitable driver found for jdbc:mysql://localhost:3306/student

没有合适的驱动,也许是数据库版本和驱动不合适,请搜索一下MYSQL的驱动和版本,是有区别的。
小瑾~ 2008-09-22
  • 打赏
  • 举报
回复
驱动已经加上了,没有问题,还是出现那个问题
非典型射手 2008-09-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 Geothermal 的回复:]
我重新下载了驱动还是不行,看来不是驱动的事

对于9楼的看法
具体的该怎样做才能使conn不为空,这个异常该怎样处理
[/Quote]

根据异常信息看,就是因为驱动没找到才导致conn为null的,你再仔细看看驱动是否已经加好,有可能是没在path中

至于异常怎么处理就要看你的程序想怎么处理了,至少你这里的程序,出现这样的异常就不应该执行下去了,直接将异常抛到最外层或是将方法return 掉吧
Xiaoyang 2008-09-22
  • 打赏
  • 举报
回复
LZ 是没有合适的驱动了!! 自己多试试吧。。
小瑾~ 2008-09-22
  • 打赏
  • 举报
回复
我重新下载了驱动还是不行,看来不是驱动的事

对于9楼的看法
具体的该怎样做才能使conn不为空,这个异常该怎样处理
非典型射手 2008-09-22
  • 打赏
  • 举报
回复
代码有问题,

try
{
conn=DriverManager.getConnection(url,user,passwordOfDB);
}
catch(Exception ex){ex.printStackTrace();} String sql="select * from userinfo where username='"+username+"'and password='"+password+"'";
stmt=(Statement)conn.createStatement();
rs=(ResultSet)stmt.executeQuery(sql);


异常信息只是捕获没做任何处理是不对的.之所以出现空指针异常就是因为前面的异常捕获处理不当.
首先conn获取的时候出现了No suitable driver found for jdbc:mysql://localhost:3306/student的异常,但是此时将异常信息捕获后会继续后面的程序.这个时候conn仍然为null,所以就会出现空指针异常了
小瑾~ 2008-09-22
  • 打赏
  • 举报
回复
是的,我也想到了,可能是驱动的事,我又另外单独写了一个数据库查询操作,在JavaApplication下调试没有问题,我重新下载一个驱动试一下
lip009 2008-09-22
  • 打赏
  • 举报
回复
驱动程序没有,连接conn为NULL
ChocooM 2008-09-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Geothermal 的回复:]
这是出现的异常信息:
Class not found error occur.Message is:com.mysql.jdbc.Driverjava.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/student
[/Quote]

没有合适的驱动,重新下载一个驱动
Atai-Lu 2008-09-22
  • 打赏
  • 举报
回复
没有mysql的.jar文件?
Daly罗 2008-09-22
  • 打赏
  • 举报
回复
还有中可能是字符编码问题造成ResultSet对象rs为Null;
小瑾~ 2008-09-22
  • 打赏
  • 举报
回复
这是出现的异常信息:
Class not found error occur.Message is:com.mysql.jdbc.Driverjava.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/student
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at mypack.SQLQuery.validate(SQLQuery.java:34)
at mypack.CheckA.doPost(CheckA.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
2008-9-22 16:32:15 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet CheckA threw exception
java.lang.NullPointerException
at mypack.SQLQuery.validate(SQLQuery.java:38)
at mypack.CheckA.doPost(CheckA.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
lip009 2008-09-22
  • 打赏
  • 举报
回复
请确信conn该连接不是NULL
suihu 2008-09-22
  • 打赏
  • 举报
回复
把异常信息粘出来啊!

81,094

社区成员

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

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