2015-02-07 82 views
-2

我可以通過檢查數據庫中是否存在任何重複項來了解驗證變量的最佳方法嗎?使用ResultSet.getString檢查重複項

我試過幾種不同的方式了,但只要不滿足第一if條件,一個空白頁會顯示

編輯:我已經想過設定username到一個獨特的價值,但會接觸到我的主鍵衝突,staff_id

<%-- Checking for duplicates - Reading --%> 
<% 
if(request.getParameter("Check") != null){ 
     try{ 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     String conURL1= "jdbc:odbc:HOD_DATA"; 
     Connection con1 = DriverManager.getConnection(conURL1); 
     Statement st1 = con1.createStatement(); 
     String query = "select username from Staff where username = '"+sUsername+"'"; 
     ResultSet rs = st1.executeQuery(query); 

     while(rs.next()){ 
     result = rs.getString("username"); 

     if(result.equals(sUsername)) { 
     response.setHeader("Refresh", "3; URL=StaffReg.jsp"); 
     out.println("You may not use this username."); 

     } 

     else if(rs.wasNull()) { 
     response.setHeader("Refresh", "3; URL=StaffReg.jsp"); 
     out.println("You may use this username."); 

     } 


     } 
     rs.close(); 
     st1.close(); 
     con1.close(); 
     } 

     catch(Exception e){ 
     out.println(e); 
     } 
} 

     %> 
+0

爲什麼要重新檢查它。只是把'else'而不是'else if' – 2015-02-07 08:34:53

+0

這沒有意義。該查詢已經檢查了您正在聲明的條件。這裏沒有任何東西可以檢查重複。 – EJP 2015-02-07 08:35:58

+0

我已經嘗試過了。檢查永遠不會進入第二種狀態,即使它是'else' – Ashton 2015-02-07 08:36:23

回答

0

你可以得到的次數和檢查計數> 0

下面是一個example.Hope這將幫助。

public int checkUsername(String sUsername) { 
     Connection conn = null; 
     PreparedStatement pstmt = null; 
     ResultSet rs = null; 
     int count =0; 
     try{ 
      conn = DatabaseManager.con(); 
      String query="select count(*) from Staff where username=? "; 
      pstmt=conn.prepareStatement(query); 
      pstmt.setString(1,sUsername); 
      rs=pstmt.executeQuery(); 

      while (rs.next()) { 
       count=rs.getInt("count(*)"); 

      } 

     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 
     finally { 
      if (rs != null) 
       DatabaseManager.rs_close(rs); 
      if (pstmt != null) 
       DatabaseManager.stmt_close(pstmt); 
      if (conn != null) 
       DatabaseManager.con_close(conn); 
     } 
     return count; 

    } 

//調用方法並檢查。

if(checkUsername("Amanda")>0){ 

       System.out.println("user exists"); 


      }