空值将插入数据库中

时间:2016-06-28 05:18:16

标签: java jdbc

我正在检查提交的数据不是空的,但只是简单地提交(没有数据)它仍然插入数据库,我也使我的列不为空但数据仍然插入。我不知道为什么呢?

在我的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;
}      

1 个答案:

答案 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)。

请参阅:null-vs-empty-string-in-oracle