如何确定java中的数据库约束冲突?
我依靠数据库来告诉我是否存在唯一性冲突,所以我想知道我得到的异常何时是某种约束冲突。看起来这正是我需要的:如何确定java中的数据库约束冲突?,java,exception,jdbc,constraints,Java,Exception,Jdbc,Constraints,我依靠数据库来告诉我是否存在唯一性冲突,所以我想知道我得到的异常何时是某种约束冲突。看起来这正是我需要的:java.sql.sqlnontransienceexception 但它是1.6版的新版本,我不相信我的数据库驱动程序足够新。我使用了很多DBMS,有很多客户机,所以依靠驱动程序来更新是很困难的 除了在异常消息中搜索“constraint”之外,是否有一种通用的方法来检查java 1.6之前的版本?否,没有通用的机制。它取决于您使用的数据库和JDBC驱动程序 SQLException具有g
java.sql.sqlnontransienceexception
但它是1.6版的新版本,我不相信我的数据库驱动程序足够新。我使用了很多DBMS,有很多客户机,所以依靠驱动程序来更新是很困难的
除了在异常消息中搜索“constraint”之外,是否有一种通用的方法来检查java 1.6之前的版本?否,没有通用的机制。它取决于您使用的数据库和JDBC驱动程序
SQLException
具有getErrorCode
和getSQLState
方法,这些方法返回的信息可用于确定给定异常的确切含义,但必须使其特定于driver+数据库
。您可以使用它,或者至少看看它的SOURE代码,看看它是如何工作的。一般来说:不要期望数据库驱动程序总是返回“正确”的异常。最好检查一下:
- SQL状态
- 供应商代码
- 实际消息文本(取决于驱动程序!)