如何捕获 JDBC 中的特定异常?

2024-03-02

如何捕获特定异常JDBC http://en.wikipedia.org/wiki/Java_Database_Connectivity?示例:主键异常或外键异常。


最好的且独立于数据库的处理方式SQLException更具体地说,是确定SQL状态代码,可以通过以下方式获得SQLException#getSQLState() http://java.sun.com/javase/6/docs/api/java/sql/SQLException.html#getSQLState%28%29。 SQLState 是一个 5 字符代码,其中前两个在所有数据库中通用,后三个可能因数据库和/或特定条件而异。这是摘录自spec http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt:

  • 02:无数据
  • 07:动态SQL错误
  • 08:连接异常
  • 0A:不支持该功能
  • 21:基数违规
  • 22:数据异常
  • 23:违反完整性约束
  • 24:无效的光标状态
  • 25:无效交易状态
  • 26:无效的SQL语句名称
  • 28:无效的授权规范
  • 2B:依赖特权描述符仍然存在
  • 2C:无效的字符集名称
  • 2D:无效交易终止
  • 2E:连接名称无效
  • 33:无效的 SQL 描述符名称
  • 34:无效的游标名称
  • 35:无效的条件号
  • 3C:游标名称不明确
  • 3D:目录名称无效
  • 3F:模式名称无效

因此,要确定 SQL 异常是否是由违反约束引起的,您可以在(虚构的)中执行以下操作SQLUtil class:

public static boolean isConstraintViolation(SQLException e) {
    return e.getSQLState().startsWith("23");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何捕获 JDBC 中的特定异常? 的相关文章

  • 如何在由子控件组成的 SWT 复合材料上跟踪鼠标?

    我创建了自己的控件 我想跟踪鼠标并添加一个MouseTrackListener 很遗憾MouseEnter and MouseLeave当鼠标移动到我的合成部分 即标签和按钮 上时 也会生成事件 Mouse enter mouse ente
  • 有没有创建 Cron 表达式的 Java 代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要一个 Java 代码来根据用户输入创建一个 cron 表达式 用户输入是时间 频率和执行次数 只需从评论中添加 自己创建 即可
  • Java Logger 未记录到 Netbeans 中的输出

    我正在 Netbeans 中使用 Maven 启动一个 Java 项目 我编写了一些代码来使用 Logger 类进行日志记录 但是 日志记录似乎不起作用 在程序开始时 我运行 Logger getLogger ProjectMainClas
  • 如何在java中将数组值排序为循环格式?

    我的数组值如下 String value 1 2 3 4 5 6 7 8 9 10 假设如果我将值 5 传递给 tat 数组 它应该按如下顺序排序 5 6 7 8 9 10 1 2 3 4 怎么办 有人帮忙吗 感谢你 你需要的就是所谓的轮换
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • 如何调试“com.android.okhttp”

    在android kitkat中 URLConnection的实现已经被OkHttp取代 如何调试呢 OkHttp 位于此目录中 external okhttp android main java com squareup okhttp 当
  • 如何在 Java 中向时间戳添加/减去时区偏移量?

    我正在使用 JDK 8 并且玩过ZonedDateTime and Timestamp很多 但我仍然无法解决我面临的问题 假设我得到了格式化的Timestamp在格林威治标准时间 UTC 我的服务器位于某处 假设它设置为Asia Calcu
  • Android中如何使用JNI获取设备ID?

    我想从 c 获取 IMEIJNI 我使用下面的代码 但是遇到了未能获取的错误cls 它总是返回NULL 我检查了环境和上下文 它们都没有问题 为什么我不能得到Context班级 我在网上搜索了一下 有人说我们应该使用java lang Ob
  • java inputstream 打印控制台内容

    sock new Socket www google com 80 out new BufferedOutputStream sock getOutputStream in new BufferedInputStream sock getI
  • 如何检查某个元素是否存在于一组项目中?

    In an ifJava中的语句如何检查一个对象是否存在于一组项目中 例如 在这种情况下 我需要验证水果是苹果 橙子还是香蕉 if fruitname in APPLE ORANGES GRAPES Do something 这是一件非常微
  • 如何在 Spring 中使 @PropertyResource 优先于任何其他 application.properties ?

    我正在尝试在类路径之外添加外部配置属性资源 它应该覆盖任何现有的属性 但以下方法不起作用 SpringBootApplication PropertySource d app properties public class MyClass
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • 如何使用 JMagick 转换色彩空间?

    如何使用 JMagick API 转换色彩空间 例如 CMYK gt RGB 和 RGB gt CMYK None
  • 轻松的反应

    我有一个与这里描述的类似的案例 动态更改RESTEasy服务返回类型 https stackoverflow com questions 3786781 dynamically change resteasy service return
  • 使用 HtmlUnit 定位弹出窗口

    我正在构建一个登录网站并抓取一些数据的程序 登录表单是一个弹出窗口 所以我需要访问这个www betexplorer com网站 在页面的右上角有一个登录链接 写着 登录 我单击该链接 然后出现登录弹出表单 我能够找到顶部的登录链接 但找不
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • 手动设置Android Studio的JDK路径

    如何为 Android Studio 使用自定义 JDK 路径 我不想弄乱 PATH 因为我没有管理员权限 是否有某个配置设置文件允许我进行设置 如果您查看项目设置 您可以从那里访问 jdk 在标准 Windows 键盘映射上 您可以在项目
  • 抛出 Java 异常时是否会生成堆栈跟踪?

    这是假设我们不调用 printstacktrace 方法 只是抛出和捕获 我们正在考虑这样做是为了解决一些性能瓶颈 不 堆栈跟踪是在构造异常对象时生成的 而不是在抛出异常对象时生成的 Throwable 构造函数调用 fillInStack
  • Java 11 - 将 Spring @PostConstruct 替换为 afterPropertiesSet 或使用 initMethod

    我正在使用 spring 应用程序 有时会使用 PostConstruct用于代码和测试中的设置 看来注释将被排除在外Java 11 https www baeldung com spring postconstruct predestro

随机推荐

  • 在 Node.js 的回调周围放置返回值

    一点背景知识 我使用node js 发现通过返回可以避免许多错误all异步代码中的回调 例如 function useMyAsyncFunc stuff c callback myAsyncFunc stuff a stuff b c fu
  • 裸露和非裸露 Git 存储库的区别[重复]

    这个问题在这里已经有答案了 在 git 中 我只是想知道裸存储库和非裸存储库之间有什么区别 我知道裸存储库通常只是推送到其中并且不会在其中进行更改 除此之外 它与非裸存储库有何不同 裸存储库只有 git 文件夹 没有签出的源代码树 裸存储库
  • 在 CakePHP 中保存空间数据

    我在使用 saveAll 在 CakePHP 中保存空间数据时遇到问题 我真的不想手动编写查询 在 CakePHP 中处理空间数据 https stackoverflow com questions 4598834 handling spa
  • timeout 和 browserTimeout 的区别

    我刚刚开始使用 Selenium Grid 我当前面临的问题是测试崩溃时 浏览器永远保持打开状态 直到我到达并亲自关闭它 以便可以开始下一组测试 我注意到 NODE 配置有两种超时配置 一种用于 timeout另一个用于 browserTi
  • 有没有办法在不加载rubygems的情况下调用ruby1.9?

    所以 ruby 1 9 真的很好 因为它会自动需要 ruby gems 因此当你调用require somegem 不需要首先需要 ruby gems 它就可以工作 这通常很棒 但我有大量使用 ruby 的 shell 脚本 它们通常不依赖
  • 对 static constexpr char[] 的未定义引用

    我想要一个static const char我班上的数组 GCC 抱怨并告诉我我应该使用constexpr 尽管现在它告诉我这是一个未定义的引用 如果我将数组设置为非成员 那么它就会编译 到底是怎么回事 hpp struct foo voi
  • 查找java类中所有对方法的调用

    我有一个包含很多课程的庞大项目 我有一个非常具体的课程 让我们命名它SuperFoo 我需要找到对该方法的所有调用equals 带类型参数Superfoo 希望它是清楚的 所以 再一次 在数千个java文件 或字节码 中我想找到对该方法的所
  • 如何防止 del *.txt 出现“找不到”错误消息?

    在 Windows 批处理文件中 此行 del txt 将给出错误 警告消息 Could Not Find C txt 如果没有与模式 txt 匹配的文件 有没有办法阻止该消息 if exist txt del txt
  • PHP 人类日期范围/持续时间格式

    PHP 制作得非常好 我想知道是否有一个函数可以满足我的需要 对于持续超过一天的事件 人类的格式化方式很复杂 例子 事件一 从 2015 04 20 到 2015 04 22 可以针对人类进行格式化 如下所示 2015 年 4 月 20 2
  • 一次阻塞收集进程 n 个项目 - 完成 1 个项目后立即继续

    我有以下场景 我将数据库中的 50 个作业放入阻塞集合中 每项工作都是长期运行的 可能是 所以我想在单独的线程中运行它们 我知道 最好将它们作为 Task WhenAll 运行并让 TPL 弄清楚 但我想控制同时运行的数量 假设我想同时运行
  • Spring Boot不加载静态资源,它取决于RequestMapping深度

    我在 Spring Boot 应用程序上加载静态文件夹下的文件时遇到问题 问题是 RequestMapping 深度超过 2 之类的 RequestMapping spring xyz The RequestMapping spring 单
  • 为什么结果是NaN?

    var a 10 sayHi function sayHi var a a 10 alert a return a alert a alert sayHi 10 为什么上面的结果不是20和30 我觉得第一个是20 然后是30 functio
  • 如何将 Ada.Real_TIme.Time 转换为字符串?

    我想写一个Ada Real Time Time http www adaic com standards 05rm html RM D 8 html在一个文件中 我怎样才能做到这一点 Thanks 您可以使用Ada Real Time Sp
  • 在 EPPLUS 中读取 xlsx (2007) 文件时出错

    我在尝试读取 Excel 文件时遇到错误 xlsx 保存在Excel 2007 using EPPlus图书馆 一些解决方法 带有 EPPlus v 的 ASP net mvc 5 应用程序4 0 4 0 用户可以从我的网站下载模板文件 然
  • CSS - 创建 9x9 数独网格的最佳方法是什么?

    我正在开展一些项目来改进我的 HTML 和 CSS 其中之一是简单的数独求解器 我需要创建一个网格来放置标签或文本框 我想要一个与此中的网格图像完全相同的网格布局question https stackoverflow com questi
  • Symfony2 更新 bootstrap.php.cache

    最近 我从 symfony com 上提供的 BETA 版本开始了 Symfony2 中的一个项目 过了一段时间 我需要升级到master分支 所以我从github上检索了最新的并将其切换到vendor symfony 但是 我的 boot
  • Firefox 在收到指定内容范围的 206 后不会请求进一步的数据

    为了提供一些背景信息 我有一个
  • 如何使用Java找到偏差

    我想使用以下代码找出两条绘图线之间的偏差 但由于某种原因 它感觉不对 import java awt import java awt event ActionEvent import java awt event ActionListene
  • 如何找到源代码的编译日期?

    是否可以存储并显示项目编译的日期 我想在程序启动时打印此日期 以便了解使用的是哪个版本 目前我都是手工做的 比较麻烦 我正在使用 Visual Studio 2010 C 指定有一个特殊的预处理器宏 称为 DATE 这是编译发生时间的字符串
  • 如何捕获 JDBC 中的特定异常?

    如何捕获特定异常JDBC http en wikipedia org wiki Java Database Connectivity 示例 主键异常或外键异常 最好的且独立于数据库的处理方式SQLException更具体地说 是确定SQL状