在Java中是否有一个常见的类包含MySQL错误号?

在Java中是否有一个常见的类包含MySQL错误号?,java,mysql,jdbc,Java,Mysql,Jdbc,我刚刚写了这行漂亮的代码 if(sex.getErrorCode() == 1213) // deadlock 可怕的幻数。当然,我可以把自己所有的魔法数字都编出来,但这不应该已经存在于某个地方吗 不知道去哪里看-JDBC不应该有MySQL特定的信息,我的文件中没有任何MySQL类,也不知道MySQL JAR。不,Java中没有保存MySQL错误号的通用类。这是因为每个数据库供应商都有自己的错误代码,它们有自己的含义。例如可能在相应的jar中有一个常量类 正如@MarcB所指出的,您可以使用表

我刚刚写了这行漂亮的代码

if(sex.getErrorCode() == 1213) // deadlock
可怕的幻数。当然,我可以把自己所有的魔法数字都编出来,但这不应该已经存在于某个地方吗


不知道去哪里看-JDBC不应该有MySQL特定的信息,我的文件中没有任何MySQL类,也不知道MySQL JAR。

不,Java中没有保存MySQL错误号的通用类。这是因为每个数据库供应商都有自己的错误代码,它们有自己的含义。例如可能在相应的jar中有一个常量类


正如@MarcB所指出的,您可以使用表示每个错误的常量创建自己的类,这些常量基于以下特定的MySQL错误代码:。在我看来,您应该根据希望以特定方式处理的错误创建常量,其他错误应该使用通用方式处理。

不,Java中没有保存MySQL错误号的通用类。这是因为每个数据库供应商都有自己的错误代码,它们有自己的含义。例如可能在相应的jar中有一个常量类

正如@MarcB所指出的,您可以使用表示每个错误的常量创建自己的类,这些常量基于以下特定的MySQL错误代码:。在我看来,您应该根据要以特定方式处理的错误创建常量,其他错误应该使用通用方式处理。

MySQL Connector/J的类定义了一系列常量,您可以将这些常量与
SQLException.getErrorCode()
进行比较。例如:

if(e.getErrorCode() == MysqlErrorNumbers.ER_LOCK_DEADLOCK) { }
这个列表有些奇怪。

MySQL Connector/J的类定义了一系列常量,您可以将这些常量与
SQLException.getErrorCode()
进行比较。例如:

if(e.getErrorCode() == MysqlErrorNumbers.ER_LOCK_DEADLOCK) { }

这个列表有点。

可以考虑使用,而不是直接使用JDBC。Spring实现了用于检查SQL状态代码、处理连接失败等的样板代码。它将通用<代码> SQLExabor < /代码>异常转换为适当的特定异常。

< P>可以直接使用而不是使用JDBC。Spring实现了用于检查SQL状态代码、处理连接故障等的样板代码。它将一般的
SQLException
异常转换为适当的特定异常。

它们都记录在这里:除非oracle对我们发疯,否则它们不太可能改变。为什么不使用SQL状态?如果不够具体,可以在mysql jdbc驱动程序中使用com.mysql.jdbc.MysqlErrors类中的常量。该类不是任何公共API的一部分,因此它可能会在某个时间点发生更改或移动。它们都记录在这里:除非oracle对我们采取疯狂行动,否则它们不太可能更改。为什么不使用SQL状态?如果不够具体,可以在mysql jdbc驱动程序中使用com.mysql.jdbc.MysqlErrors类中的常量。该类不是任何公共API的一部分,因此它可能会在某个时候发生更改或移动。很好,我已经有一段时间没有做过这方面的工作了,但这似乎是我找不到的。既然你是新来的,解决了一个老问题,我就按你的方式给你一笔赏金。你愿意解释一下并@cc me吗?我想给这个答案一个悬赏,但如果有什么问题,我想首先知道。可能是链接到一个非官方的位置被认为是不可靠的和/或介绍被认为是太闲聊。我将答案编辑成更“学术”的形式@约瑟夫,请随意接管,这毕竟是你的答案@谢谢你,非常好。“RandomSeed,我没有把这个玩笑看成是负面的,也没有找到任何官方发布的java文档。谢谢你的编辑。我觉得不错。我会在将来记住这些要点。很荣幸,我已经有一段时间没有做过这方面的工作了,但这似乎是我找不到的。既然你是新来的,解决了一个老问题,我就按你的方式给你一笔赏金。你愿意解释一下并@cc me吗?我想给这个答案一个悬赏,但如果有什么问题,我想首先知道。可能是链接到一个非官方的位置被认为是不可靠的和/或介绍被认为是太闲聊。我将答案编辑成更“学术”的形式@约瑟夫,请随意接管,这毕竟是你的答案@谢谢你,非常好。“RandomSeed,我没有把这个玩笑看成是负面的,也没有找到任何官方发布的java文档。谢谢你的编辑。我觉得不错。我将来会记住这些要点。