weixin_49095187 2021-06-13 14:34 采纳率: 33.3%
浏览 38
已结题

这个MVC我用学号查询数据库用户为什么会报空指针异常?

这是查询代码:

//根据用户ID查找指定用户
public Student studentByID(String sid){
    Student student =new Student();
    Statement stmt3=null;
    ResultSet rs=null;
    Connection con2=null;
    try{
        stmt3=con2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        rs=stmt3.executeQuery("select * from student where Sid='"+sid+"'");
        if (rs.next()){
            student.setSid(rs.getString(1));
            student.setName(rs.getString(2));
            student.setClasses(rs.getInt(3));
            student.setSex(rs.getString(4));
            student.setEmail(rs.getString(5));
            student.setPolicalstatus(rs.getString(6));
            student.setPassword(rs.getString(7));
            student.setAge(rs.getInt(8));
            student.setRole(rs.getString(9));
        }
        rs.close();
        stmt3.close();
        con2.close();
    }
    catch (SQLException ex){
        ex.printStackTrace();
    }
    return student;
}

//这是登录页的代码:

String name=req.getParameter("names");
    String password=req.getParameter("passwords");
    String sid=req.getParameter("sid");
    String role="";
    //调用用户模型,获取用户角色
    studentDAO studentDAO = new dbconnection();
    student = studentDAO.studentByID(sid);
    req.setAttribute("student",student);
    if(password.equals(studentDAO.studentByID(sid).getPassword())){
        role=studentDAO.validate(name,password);
        if(role.equals("普通用户")){
            RequestDispatcher requestDispatcher = req.getRequestDispatcher("userpage.jsp");
            requestDispatcher.forward(req,resp);
        }
        else if (role.equals("管理员")){
            RequestDispatcher  requestDispatcher =req.getRequestDispatcher("managerpage.jsp");
            requestDispatcher.forward(req,resp);
        }
        else{
            RequestDispatcher requestDispatcher = req.getRequestDispatcher("load.jsp");
            requestDispatcher.forward(req,resp);
        }
    }
    else{
        System.out.println("您的密码有误!");
        RequestDispatcher requestDispatcher=req.getRequestDispatcher("load.jsp");
        requestDispatcher.forward(req,resp);
    }
}
  • 写回答

5条回答 默认 最新

  • 关注
     Connection con2=null;

    con2没有创建对象,建立连接,添加代码如下:

    Class.forName(driver);

    con2 = DriverManager.getConnection(url,"sa","123456");

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月30日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分