检查Oracle数据库中是否存在用户-java jdbc

检查Oracle数据库中是否存在用户-java jdbc,java,oracle,jdbc,Java,Oracle,Jdbc,因此,我有一个工作代码/准备好的语句,将用户名和密码添加到数据库中,但是我需要检查代码中是否已经存在用户名 public void addUser(Connection conn, PreparedStatement pstmnt, String username, String password) { try { pstmnt = conn.prepareStatement("insert into users values

因此,我有一个工作代码/准备好的语句,将用户名和密码添加到数据库中,但是我需要检查代码中是否已经存在用户名

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");
    }

有什么简单的方法可以做到这一点吗?

如果没有太多重复密钥风险,您可以尝试检查错误代码是否与“dup key error”()匹配


否则必须锁定整个表,检查密钥是否存在,更新然后提交(这将释放锁)

您可以在数据库中添加一个唯一约束,并相应地在addUSer中处理异常

在数据库中使用一个
唯一
约束不起作用?正如@UwePlonus所说的——只需在数据库级别强制执行约束即可。这就是主键。+1,这是最好的解决方案。例如,使用语句
altertable users添加约束users\u uq\u name UNIQUE(username)