2013-06-18 42 views
0

所以我有這個工作代碼/準備語句,將用戶名和密碼添加到數據庫中,但我需要檢查用戶名是否已存在於代碼中。檢查用戶是否存在Oracle數據庫 - java jdbc

public void addUser(Connection conn, PreparedStatement pstmnt, String username, String password) 
    { 
     try 
     { 
      pstmnt = conn.prepareStatement("insert into users values (?,?,?)"); 
      pstmnt.setInt(1, 0); 
      pstmnt.setString(2, username); 
      pstmnt.setString(3, password); 
      pstmnt.executeUpdate(); 
     } 
     catch (SQLException e) { System.out.println("Error: " + e.getMessage()); } 

     System.out.println(username + " has been added"); 
    } 

有沒有簡單的方法可以做到這一點?

+1

在數據庫中使用「唯一」約束不起作用? –

+0

@UwePlonus說什麼 - 只需在數據庫級別實施約束。這是主鍵。 – fge

回答

0

如果沒有很多重複密鑰風險,則只需嘗試檢查錯誤代碼,如果它匹配「dup關鍵錯誤」(Error ORA-00001)。

否則,您必須鎖定整個表,檢查是否有鍵存在,更新,然後提交(其解除鎖定)

1

您可以在數據庫中添加一個唯一約束和ADDUSER處理異常相應

+0

+1,這是最好的解決方案。例如,使用語句「ALTER TABLE users ADD CONSTRAINT users_uq_name UNIQUE(username);' –

相關問題