java – 查找是否由于重复引发了SQLException

前端之家收集整理的这篇文章主要介绍了java – 查找是否由于重复引发了SQLException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个与数据库不相关的 Java程序,如果由于重复的键抛出了sqlException,我需要知道插入的时候.

如果我使用单个数据库驱动程序,我将简单地使用ErrorCode,但由于我可以使用非常不同的引擎,ErrorCode不一样.

以前有人做过吗?有任何想法吗?

很多TIA!

编辑:我有一个配置文件,其中存储驱动程序类(即:org.apache.derby.jdbc.ClientDriver)和一些其他需要的信息(即:用户名,密码,url …).连接始终作为“java.sql.Connection”传递,所以我不在乎什么驱动程序被使用.

解决方法

使用基本的JDBC,实际上没有办法以跨数据库的方式做你所说的话.正如你所提到的,可以使用getErrorCode,但需要供应商特定的错误代码.

我看到的唯一三种方法是:

>使用某种框架,将所有从错误代码翻译成有意义的异常(Hibernate可能会这样做,有人提到Spring)
>在插入之前手动检查副本(带有选择). (这不会是100%,因为在技术上可能有人可以在您的查询后插入).
>在插入后收到任何sql异常后,尝试查询该ID.如果可以找到匹配项,您可以确定您收到的错误是由于重复的主键. (尽管有可能存在多个问题,而实际上并没有被抛出).

我的建议是写你的代码尽可能地避免这个问题,然后(如果绝对必要的话),使用#3.

猜你在找的Java相关文章