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

序言:

 

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

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

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

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

问题:

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

连接类DBUtil:

import java.sql.*;
public class DBUtil {
	private static String url="jdbc:sqlserver://localhost:1433;DatabaseName=xxx";
	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!再见

 

 


 

 

评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值