我正在检查提交的数据不是空的,但只是简单地提交(没有数据)它仍然插入数据库,我也使我的列不为空但数据仍然插入。我不知道为什么呢?
在我的Servlet中
try{
String department=request.getParameter("department");
String company=request.getParameter("company");
String place=request.getParameter("place");
boolean checkd=checknull.value(department);
boolean checkc=checknull.value(company);
boolean checkp=checknull.value(place);
if(checkd==true&&checkc==true&&checkp==true) {
Connection con=ConnectionProvider.getCon();
String sql="insert into department(departmentname,company,place) values (?,?,?)";
PreparedStatement pstmt =con.prepareStatement(sql);
pstmt.setString(1,department);
pstmt.setString(2,company);
pstmt.setString(3,place);
int rs=pstmt.executeUpdate();
if(rs>0){status=true;}
if(status){
PrintWriter out= response.getWriter();
out.print("values have been inserted,"+admin);
response.sendRedirect("inserted.jsp");
}
else
{
PrintWriter out= response.getWriter();
out.print("failed to insert");
response.sendRedirect("notinsered.jsp");
}
}
else{response.sendRedirect("entry.jsp");}
}catch(SQLException e){}
这是正在检查的java类
public class checknull {
static boolean ch;
public static boolean value(String check)
{
ch = check != null;
return ch;
}
答案 0 :(得分:1)
将您的checknull
课程修改为:
public class checknull
{
// static boolean ch; (You don't need this static variable)
public static boolean value(String check)
{
return check != null && check.length() > 0;
}
}
此外,Java中的惯例是UpperCase
中有类名。
示例强>:
public class CheckNull
修改强>: 正如Erwin Bolwidt所建议的那样,这里使用的数据库很可能是Oracle,因为Oracle将空字符串和空值等同起来。
因此,此答案仅适用于将空字符串视为空值的数据库(例如Oracle)。