0

我是新的 MySQL 用户,试图编写通过 Java 操作数据库的程序。

users用以下属性命名表| USERNAME | EMAIL | ROLE |,其中 USERNAMEisPRIMARY KEY和其余属性是NOT NULL

可以说我这样做INSERT INTO users了,因为USERNAMEMySQL 上有主键约束应该抛出错误。这个错误将如何抛出以及如何在 JAVA 中捕获它?我是否需要编写存储过程来引发错误或INSERT INTO语句也具有此功能?

4

1 回答 1

1

如果违反了主键,SQLException则会抛出一条消息,其中包含违反的约束名称。您的异常处理可能如下所示:

try {
    //do the insert
} catch (SQLException e) {
    if(e.getMessage().contains("MY_CONSTRAINT_NAME")) {
        //duplicate key
    } else {
        //some other error
    }
}

另一种方法是检查SQLException.getSQLState()SQLException.getErrorCode()

我建议使用Spring JDBC,它负责SQLException 转换,通常会减少您需要编写的 JDBC 代码量。

于 2013-03-27T00:51:16.563 回答