web连接数据库时,报空指针java.lang.NullPointerException问题--可能的解决方式

来源:互联网 发布:js构造函数模式 编辑:程序博客网 时间:2024/06/06 13:03

序言:

好吧,第一次写CSDN博客,其实从一开始学计算机,到现在,快两年了,中间就不断的遇到问题,基本通过上这博客看的大笑

确实挺好的  一直想什么时候开始  把自己遇到的问题和解决方法都写下来,毕竟每次自己遇到麻烦的时候真心 心累

对于像我这样的新手,或许一个小问题可以磨半天

这次  总算开始写了 微笑微笑

问题:

写web时,需要用到数据库的数据,参着网上的方法自己写了一个数据库连接类,然而给这个类写个main方法,能够正常读取数据,但用在servlet里时却报空指针java.lang.NullPointerException的异常

连接类DBUtil:

import java.sql.*;public class DBUtil {private static String url="jdbc:sqlserver://localhost:1433;DatabaseName=班级圈";private static String driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver";private static Connection conn;//装载驱动static{try{Class.forName(driverClass);}catch(ClassNotFoundException e){e.printStackTrace();}}//获取数据库连接public static Connection getConnection(){try{conn=DriverManager.getConnection(url,"root","123456");}catch(SQLException e){e.printStackTrace();}return conn;} public static void main(String[] args)throws ClassNotFoundException, SQLException{  Connection conn=DBUtil.getConnection();  Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery("select name from student");while(rs.next()){//返回值是boolean类型 System.out.println(rs.getString("name").trim());}  }//关闭数据库连接public static void Clse(){if(conn!=null){try{conn.close();}catch(SQLException e){e.printStackTrace();}}}}


好吧,全部贴上来了,接下来是在servlet中用到这个类,代码一部分

try {Statement stmt;stmt = DBUtil.getConnection().createStatement();ResultSet rs=stmt.executeQuery("select pass from teacher where phonenum='"+userName+"'");if(rs.next()){if(rs.getString("pass").equals(passWord)){isFound=true;HttpSession session=request.getSession();session.setAttribute("userName", userName);response.sendRedirect("index.jsp");}}if(!isFound)response.sendRedirect("inputerror.jsp");} catch (SQLException e) {e.printStackTrace();}

就是这样,运行。。。。。。。报错了!空指针异常,错误发生在  stmt = DBUtil.getConnection().createStatement();  这一行

讲道理  没错啊敲打      看起来稳的一痞

不扯了 ,,

解决:

个人的解决方法是 除了在工程中导入数据库驱动包,在   tomcat  的  lib   目录下也要放入数据库驱动的  jar  包,也就是说  这个jar包要放两个地方,毕竟这是tomcat服务需要用到的(我的理解)

或者:将驱动jar包放置WebContent > WEB-INF > lib 文件夹下,并Add to build Path,应该都行

大概就是这样  ,解决了空指针异常

当然遇到这问题,前提是数据库服务的各种配置啊,端口啊什么的都要弄好了


另外:顺带扯一句 ,当时我用的是 sql server 2008 R2 SP2,无论怎么弄,测试 telnet 127.0.0.1:1433都不成功

经过一番苦搜,将SP2升级到SP3  done!再见





2 0