加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 17:44:52 所属栏目:Java 来源:网络整理
导读:我有一个与数据库不相关的 Java程序,如果由于重复的键抛出了SQLException,我需要知道插入的时候. 如果我使用单个数据库驱动程序,我将简单地使用ErrorCode,但由于我可以使用非常不同的引擎,ErrorCode不一样. 以前有人做过吗?有任何想法吗? 很多TIA! 编辑:
我有一个与数据库不相关的 Java程序,如果由于重复的键抛出了SQLException,我需要知道插入的时候.

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

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

很多TIA!

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

解决方法

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读