使用JDBC捕获和处理ORA-00001 SQLException的正确方法是什么?

时间:2011-04-19 16:03:24

标签: oracle jdbc primary-key constraints ora-00001

我正在创建一个简单的表单,使用JDBC通过Java Servlet将输入的数据存储在一个非常简单的Oracle数据库表中。该表使用电子邮件地址作为主键。如果用户使用相同的电子邮件地址多次提交表单,则execute函数将失败并抛出SQLException。异常的字符串如下:

java.sql.SQLException: ORA-00001: unique constraint (...removed...) violated

在这种情况下,我想通过告诉用户无法使用相同的电子邮件地址多次提交表单来捕获此异常并进行处理。什么是单独处理ORA-00001的正确方法,与execute可以抛出的任何其他SQLExceptions不同?字符串比较显然可以在这里工作,但这似乎是一个糟糕的解决方案。

1 个答案:

答案 0 :(得分:14)

如果您不需要独立于DBMS,请使用SQLException.getErrorCode()

它返回供应商特定的数字错误代码。对于ORA-0001,这将是1