2016-06-28 207 views
0

我檢查提交的數據是不是空的,但只是提交(沒有數據)它仍然插入數據庫中,也使我的列不空,但數據仍然插入。我不知道爲什麼?空值插入數據庫

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

這是正在檢查

public class checknull { 
static boolean ch;  
public static boolean value(String check) 
{   
    ch = check != null; 
    return ch; 
}  
+1

表單中的值可能爲空字符串。 –

+0

我應該如何檢查空字符串? –

回答

1

的Java類修改您的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)的數據庫。

請參閱:null-vs-empty-string-in-oracle

+0

爲什麼他應該包含字符串長度檢查?這會如何影響數據庫中的空值? –

+0

空值不會進入數據庫,空字符串是。 –

+1

如果他像他說的那樣得到空白,並且在他將空字符串放入時發生,那麼他必須使用Oracle。我認爲這是唯一一個將它們等同起來的數據庫。這也意味着您的答案僅適用於Oracle。這可能有助於爲未來的讀者添加。 –