我在应用程序中有一个显示数字的下拉字段.
当用户没有从下拉列表中选择任何值时,我希望将数据库插入为null.
如何将Integer包装器类初始化为null?
我试过了
Integer days = new Integer(null);
if (request.getParameter("days").equals("")) {
} else {
days =
Integer.parseInt(request.getParameter("days"));
}
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误,那么声明Integer变量的正确方法是什么?
NumberFormatException at test.doPost(Controller.java:23);
Run Code Online (Sandbox Code Playgroud)
如何初始化Integer变量,以便在用户未选择任何值时,应插入null.
您应该使用null初始化:
Integer days = null;
if (request.getParameter("days") != null && !request.getParameter("days").isEmpty()) {
days = Integer.parseInt(request.getParameter("days"));
}
Run Code Online (Sandbox Code Playgroud)
更新:最好先验证一个整数:
Integer days = null;
if(request.getParameter("days")!=null && request.getParameter("days").matches("^\\d+$"))
{
days = Integer.parseInt(request.getParameter("days"));
}
Run Code Online (Sandbox Code Playgroud)
更新2:为了能够在DB中插入null:
if (project.getDays() != null)
callablestatement.setInt(2, project.getDays());
else
callablestatement.setNull(2, java.sql.Types.INTEGER);
Run Code Online (Sandbox Code Playgroud)