日期:2014-05-17  浏览次数:20775 次

severlet 的UserBeanCl连接数据库问题,我已绞尽脑汁
我是一个servlet的初学者,之前用model 1 模式将所有代码放在一个文件里时连接、操作数据库都正常!可是现在对数据库的操作单独写在UserBeanC文件里面就不能通过了!!!进过我在三检查,try、catch发出就是 rs=ps.executeQuery("select top 1 password from [dbo].[user] where userId='"+u+"'");这句话有错但我完全不知道错在哪里!我甚至在sql server里面运行该语句都能查询通过,求大家帮我看看吧!!!(补充说明:我用的数据库是sql server 2008,操作系统win7)


package com.liz;
import java.sql.*;
public class UserBeanCl
{
private Connection ct=null;
private Statement ps=null;
private ResultSet rs=null;

public boolean checkUser(String u,String p)
{
boolean b=false;
try {
ConnDB cd=new ConnDB();
try {
cd.getConn();
}
catch (Exception ex) {
System.out.println("没有连接");
}

try {
rs=ps.executeQuery("select top 1 password from [dbo].[user] where userId='"+u+"'");}
catch (Exception ex) {
System.out.println("此处出错!!!");
} if(rs.next())
{
String dbpasswd=rs.getString(1);
if(dbpasswd.equals(p))
{
b=true;
}
}

}
catch (Exception ex) {
ex.printStackTrace();
} return b;
} }



------解决方案--------------------
NullPointerException 空指针错误

UserBeanCl.java: 30 就是你说的rs=ps.executeQuery( 这行么?

如果是的话,说明ps这个变量没有初始化,也就是 ps == null
------解决方案--------------------
很明显么jdbc的步骤你得遵循啊,你获取连接之后要createStatement 才可以啊 ,显示空指针异常肯定是你使用了值为null的引用了!
Java code

try {
ps=cd.createStatement();//cd就是你上面获取的jdb连接 也就是Connection对象
rs=ps.executeQuery("select top 1 password from [dbo].[user] where userId='"+u+"'");}
catch (Exception ex) {
System.out.println("此处出错!!!");
}