MySQL和Java-插入表时引发异常
我是MySQL的新用户,试图编写通过Java操作数据库的程序 将名为MySQL和Java-插入表时引发异常,java,mysql,sql,database,Java,Mysql,Sql,Database,我是MySQL的新用户,试图编写通过Java操作数据库的程序 将名为users的表命名为|用户名|电子邮件|角色|,其中用户名为主键,其余属性为非空 假设我做了插入到用户中,因为用户名上有主键约束MySQL应该抛出错误。如何抛出这个错误,如何在JAVA中捕获它?我是否需要编写用于抛出错误的存储过程,或者INSERT INTO语句也具有此功能?如果违反了主键,将抛出一个SQLException,并显示一条包含违反的约束名称的消息。您的异常处理可以如下所示: try { //do the i
users
的表命名为|用户名|电子邮件|角色|
,其中用户名
为主键
,其余属性为非空
假设我做了
插入到用户中
,因为用户名上有主键约束
MySQL应该抛出错误。如何抛出这个错误,如何在JAVA中捕获它?我是否需要编写用于抛出错误的存储过程,或者INSERT INTO
语句也具有此功能?如果违反了主键,将抛出一个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()
我建议您使用它来处理并通常减少您需要编写的JDBC代码量。您为什么不先尝试遵循有关此主题的众多教程之一,并在遇到无法解决的特定问题时提出问题?作为提示,我将使用
PreparedStatement
而不是Statement
。缺点:它的异常处理非常糟糕。第一个成功的异常处理是。在这两者之间你会找到答案的。最后,MySQL将在适当的时候抛出;你不必做任何特别的事。