我在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
在数据库中自动递增。这是父类的一个属性,我必须在子类中使用。
答案 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();
}