当我创建新数据时参数应该为空时,我不断收到null异常

时间:2019-05-30 05:34:55

标签: java null

我在servlet中的doPost方法遇到麻烦。我正在使用java和oracle作为其数据库的简单系统。在数据库中,属性rph_id是自动递增的,因此在Java中,当我要创建一组新数据时,rph_id应该为空,对吧?

该代码以前可以使用,但现在不再可用。它一直给空异常。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{

    int rph_id = Integer.parseInt(request.getParameter("rph_id"));
    String rph_date = request.getParameter("rph_date");
    String rph_time = request.getParameter("rph_time");
    String rph_type = request.getParameter("rph_type");
    int teacher_id = Integer.parseInt(request.getParameter("teacher_id"));
    int subject_id = Integer.parseInt(request.getParameter("subject_id"));
    String rph_submitstatus = null;
    String rph_comment = null;

    RPHS rph = new RPHS(rph_date, rph_time, rph_type, rph_submitstatus, rph_comment, teacher_id, subject_id, false);
    rph = RphDAO.getRph(rph);
}

int rph_id = Integer.parseInt(request.getParameter("rph_id"));行,我一直为空。

rph_id在数据库中自动递增。这是父类的一个属性,我必须在子类中使用。

1 个答案:

答案 0 :(得分:1)

您是说它是数据库中的自动增量键,所以为什么要尝试从请求参数中获取它?如果您从未设置值或通过html表单等设置,则无法从那里获取值。

插入后,应该从RPHS对象中获取它。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    //int rph_id = Integer.parseInt(request.getParameter("rph_id"));
    ..
    ..

    RPHS rph = new RPHS(rph_date, rph_time, rph_type, rph_submitstatus, rph_comment, teacher_id, subject_id, false);
    rph = RphDAO.getRph(rph);

    int rph_id=rph.getRphId();
}