抛出SQLIntegrityConstraintViolationException时如何查找列和表名

时间:2014-07-01 10:12:17

标签: java jdbc exception-handling

如何找到哪个列导致SQLIntegrityConstraintViolationException? 当我捕获此异常时,仅存在消息(作为纯文本)和SQLState。但我找不到表名和列分隔,以生成用户友好的消息

2 个答案:

答案 0 :(得分:2)

与所有SQLExceptions一样,详细信息取决于您的数据库供应商。如果您很幸运,可以解析exception.getMessage()以获取此信息。但是没有一般的Java方法。

答案 1 :(得分:0)

堆栈确实包含违反的唯一键的名称。您可以将您已创建的密钥的名称与您在catch子句中查询的数据库进行比较,并相应地生成错误消息。