exception java.lang.NullPointerException的问题

图片说明
public class StaffDao {

//验证登录
    public String CheckLogin(String username, String password){
        String id = null;
        String sql="select * from staff where staff_name='"+username+"' and staff_password='"+password+"'";
        Statement stat = null;
        ResultSet rs = null;
        Connection conn = new DBHelper().getConn();
        try{

stat = conn.createStatement();//请问这行问题出在哪?

            rs = stat.executeQuery(sql);
            while (rs.next()) {
                id = rs.getString("staff_no");
            }
        }
        catch(SQLException ex){}
        return id;
    }
    //验证密码
    public boolean CheckPassword(String id, String password){
        boolean ps = false;
        String sql="select *from staff where staff_no='"+id+"' and staff_password='"+password+"'";
        Statement stat = null;
        ResultSet rs = null;
        Connection conn = new DBHelper().getConn();
        try{
            stat = conn.createStatement();
            rs = stat.executeQuery(sql);
            while (rs.next()) {
                ps=true;
            }
        }
        catch(SQLException ex){}
        return ps;
    }

5个回答

Connection conn = new DBHelper().getConn();
很可能是你连接字符串不对,数据库配置问题等,getConn();返回了null

cliblc
cliblc 字符串不对能具体说说吗?数据库配置都弄了。。。
4 年多之前 回复

在Java中对值为null的指针调用任何方法,就会引发空指针异常(java.lang.NullPointerException)。空指针异常绝对是Java中最难查找和调试的一种异常,你永远无法得到任何有用的调试信息。通过个人日常总结和网上搜集整理,归纳如下,供大家参考。
空指针异常产生的主要原因如下:
所以在Java中一般报空指针异常的原因有以下几种:
1字符串变量未初始化;
2接口类型的......
答案就在这里:空指针问题(java.lang.NullPointerException)
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

conn没有获取到,看下getConn(); 这个怎么拿到Connection 的是不是配置的问题

cliblc
cliblc 我也怀疑是conn没有获取到,public Connection getConn(){ Connection conn = null; try{ Class.forName(jdbcName); } catch(Exception e){} try{ conn=DriverManager.getConnection(dbUrl,dbUser,dbPassword); } catch(SQLException ex){} return conn;
4 年多之前 回复

您好 Statement stat = null; 你定义了数据库操作对象为null,
但是你的代码中没有去通过conn来获取数据库操作对象,
直接stat.executeQuery(sql);它的意思就是null.executeQuery(sql)所以报空指针
解决方法 stat = conn.获取数据库操作对象的方法

空引用一场StaffDao 19行

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐