您的位置:首页 > 编程语言 > Java开发

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

2017-04-25 21:53 906 查看
序言:

好吧,第一次写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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 web 后台
相关文章推荐