`

spring常见数据库错误代码

    博客分类:
  • java
阅读更多

spring在org.springframework.jdbc.support这个包的sql-error-codes.xml里面定义了常用数据库的错误代码,我们可以根据这些错误代码定位sql的基本问题。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<!--
	- Default SQL error codes for well-known databases.
	- Can be overridden by definitions in a "sql-error-codes.xml" file
	- in the root of the class path.
	-
	- If the Database Product Name contains characters that are invalid
	- to use in the id attribute (like a space) then we need to add a property
	- named "databaseProductName"/"databaseProductNames" that holds this value.
	- If this property is present, then it will be used instead of the id for
	- looking up the error codes based on the current database.
	-->
<beans>

	<bean id="DB2" class="org.springframework.jdbc.support.SQLErrorCodes">
		<property name="databaseProductName">
			<value>DB2*</value>
		</property>
		<property name="badSqlGrammarCodes">
			<value>-007,-029,-097,-104,-109,-115,-128,-199,-204,-206,-301,-408,-441,-491</value>
		</property>
		<property name="dataIntegrityViolationCodes">
			<value>-407,-530,-531,-532,-543,-544,-545,-603,-667,-803</value>
		</property>
		<property name="dataAccessResourceFailureCodes">
			<value>-904,-971</value>
		</property>
		<property name="transientDataAccessResourceCodes">
			<value>-1035,-30080,-30081</value>
		</property>
		<property name="deadlockLoserCodes">
			<value>-911,-913</value>
		</property>
	</bean>

	<bean id="Derby" class="org.springframework.jdbc.support.SQLErrorCodes">
		<property name="databaseProductName">
			<value>Apache Derby</value>
		</property>
		<property name="useSqlStateForTranslation">
			<value>true</value>
		</property>
		<property name="badSqlGrammarCodes">
			<value>42802,42821,42X01,42X02,42X03,42X04,42X05,42X06,42X07,42X08</value>
		</property>
		<property name="dataIntegrityViolationCodes">
			<value>22001,22005,23502,23503,23505,23513,X0Y32</value>
		</property>
		<property name="dataAccessResourceFailureCodes">
			<value>04501,08004,42Y07</value>
		</property>
		<property name="cannotAcquireLockCodes">
			<value>40XL1</value>
		</property>
		<property name="deadlockLoserCodes">
			<value>40001</value>
		</property>
	</bean>

	<bean id="H2" class="org.springframework.jdbc.support.SQLErrorCodes">
		<property name="badSqlGrammarCodes">
			<value>42000,42001,42101,42102,42111,42112,42121,42122,42132</value>
		</property>
		<property name="dataIntegrityViolationCodes">
			<value>22003,22012,22025,23000,23001</value>
		</property>
		<property name="dataAccessResourceFailureCodes">
			<value>90046,90100,90117,90121,90126</value>
		</property>
	</bean>

	<bean id="HSQL" class="org.springframework.jdbc.support.SQLErrorCodes">
		<property name="databaseProductName">
			<value>HSQL Database Engine</value>
		</property>
		<property name="badSqlGrammarCodes">
			<value>-22,-28</value>
		</property>
		<property name="dataIntegrityViolationCodes">
			<value>-9</value>
		</property>
		<property name="dataAccessResourceFailureCodes">
			<value>-80</value>
		</property>
	</bean>

	<bean id="Informix" class="org.springframework.jdbc.support.SQLErrorCodes">
		<property name="databaseProductName">
			<value>Informix Dynamic Server</value>
		</property>
		<property name="badSqlGrammarCodes">
			<value>-201,-217,-696</value>
		</property>
		<property name="dataIntegrityViolationCodes">
			<value>-239,-268,-692,-11030</value>
		</property>
	</bean>

	<bean id="MS-SQL" class="org.springframework.jdbc.support.SQLErrorCodes">
		<property name="databaseProductName">
			<value>Microsoft SQL Server</value>
		</property>
		<property name="badSqlGrammarCodes">
			<value>156,170,207,208</value>
		</property>
		<property name="permissionDeniedCodes">
			<value>229</value>
		</property>
		<property name="dataIntegrityViolationCodes">
			<value>544,2601,2627,8114,8115</value>
		</property>
		<property name="cannotAcquireLockCodes">
			<value>1222</value>
		</property>
		<property name="deadlockLoserCodes">
			<value>1205</value>
		</property>
	</bean>

	<bean id="MySQL" class="org.springframework.jdbc.support.SQLErrorCodes">
		<property name="badSqlGrammarCodes">
			<value>1054,1064,1146</value>
		</property>
		<property name="dataIntegrityViolationCodes">
			<value>630,839,840,893,1062,1169,1215,1216,1217,1451,1452,1557</value>
		</property>
		<property name="dataAccessResourceFailureCodes">
			<value>1</value>
		</property>
		<property name="cannotAcquireLockCodes">
			<value>1205</value>
		</property>
		<property name="deadlockLoserCodes">
			<value>1213</value>
		</property>
	</bean>

	<bean id="Oracle" class="org.springframework.jdbc.support.SQLErrorCodes">
		<property name="badSqlGrammarCodes">
			<value>900,903,904,917,936,942,17006</value>
		</property>
		<property name="invalidResultSetAccessCodes">
			<value>17003</value>
		</property>
		<property name="dataIntegrityViolationCodes">
			<value>1,1400,1722,2291,2292</value>
		</property>
		<property name="dataAccessResourceFailureCodes">
			<value>17002,17447</value>
		</property>
		<property name="cannotAcquireLockCodes">
			<value>54</value>
		</property>
		<property name="cannotSerializeTransactionCodes">
			<value>8177</value>
		</property>
		<property name="deadlockLoserCodes">
			<value>60</value>
		</property>
	</bean>

	<bean id="PostgreSQL" class="org.springframework.jdbc.support.SQLErrorCodes">
		<property name="useSqlStateForTranslation">
			<value>true</value>
		</property>
		<property name="badSqlGrammarCodes">
			<value>03000,42000,42601,42602,42622,42804,42P01</value>
		</property>
		<property name="dataIntegrityViolationCodes">
			<value>23000,23502,23503,23505,23514</value>
		</property>
		<property name="dataAccessResourceFailureCodes">
			<value>53000,53100,53200,53300</value>
		</property>
		<property name="cannotAcquireLockCodes">
			<value>55P03</value>
		</property>
		<property name="cannotSerializeTransactionCodes">
			<value>40001</value>
		</property>
		<property name="deadlockLoserCodes">
			<value>40P01</value>
		</property>
	</bean>

	<bean id="Sybase" class="org.springframework.jdbc.support.SQLErrorCodes">
		<property name="databaseProductNames">
			<list>
				<value>Sybase SQL Server</value>
				<value>Adaptive Server Enterprise</value>
				<value>sql server</value> <!-- name as returned by jTDS driver -->
			</list>
		</property>
		<property name="badSqlGrammarCodes">
			<value>101,102,103,104,105,106,107,108,109,110,111,112,113,116,120,121,123,207,208,213,257,512</value>
		</property>
		<property name="dataIntegrityViolationCodes">
			<value>233,423,511,515,530,547,2601,2615,2714</value>
		</property>
		<property name="transientDataAccessResourceCodes">
			<value>921,1105</value>
		</property>
		<property name="deadlockLoserCodes">
			<value>1205</value>
		</property>
	</bean>

</beans>

 

 

 

分享到:
评论

相关推荐

    Spring Framework 开发参考手册,数据库系统的JDBC驱动程序

    总之,Spring Framework的JDBC支持为数据库操作提供了强大而灵活的工具,通过其简洁的API和丰富的功能,大大提升了开发效率和代码质量。理解和掌握这些知识点,对于任何使用Spring进行数据库操作的开发者来说都至关...

    spring连接数据库aop-jdbc

    Spring JDBC对JDBC抛出的异常进行了封装,转换为更有意义的Spring DataAccessException子类,使开发者更容易理解和处理数据库操作的错误。 10. **测试支持**: Spring 提供了`SqlUtils`和`TestUtils`等工具类,...

    Spring mysql数据库的配置与链接

    - Spring JDBC通过SqlExceptionTranslator对数据库异常进行翻译,将其转换为Spring的DataAccessException层次结构,方便处理数据库操作错误。 通过以上步骤,我们可以有效地在Spring应用中配置和使用MySQL数据库,...

    Excel导入Oracle数据库关键代码

    在IT行业中,数据管理是一项至关重要的任务,而Excel与Oracle数据库的交互是常见的数据操作场景。Excel作为一种便捷的数据处理工具,常用于数据整理和分析,而Oracle数据库则用于存储大量结构化数据,确保数据的安全...

    spring-Hibernate整合代码测试过程

    总结起来,"spring-Hibernate整合代码测试过程"涉及了Spring框架的依赖注入、事务管理、以及与Hibernate的整合,同时也涵盖了Hibernate的实体映射、DAO设计和事务控制。通过这个过程,我们可以构建出一个高效、健壮...

    jsp连接数据库代码大全

    在JavaServer Pages (JSP) 中,连接数据库是常见的任务,尤其在开发动态网页时。JSP连接数据库通常涉及到Java的 JDBC(Java Database Connectivity)API,这是一个标准接口,用于让Java程序与各种类型的数据库进行...

    spring常见面试题(包含答案)

    JDBC 抽象和 DAO 模块保证数据库代码的简洁,并能避免数据库资源错误关闭导致的问题,它在各种不同的数据库的错误信息之上,提供了一个统一的异常访问层。 对象/关系映射集成模块支持我们在直接 JDBC 之上使用一个...

    javaspring整合错误

    404错误的常见原因可能有以下几点: 1. **Web应用未正确部署**:检查WAR文件是否正确部署到服务器的Web应用目录下。 2. **DispatcherServlet配置错误**:确认web.xml中的DispatcherServlet配置是否正确,包括...

    数据库课程设计订单生成系统代码+数据库+实验报告

    7. **异常处理**:系统应能捕获并处理可能出现的异常情况,如网络故障、数据库错误等,确保用户体验和系统稳定性。 8. **性能优化**:随着订单量的增长,系统的性能优化变得重要。这可能包括索引优化、查询优化、...

    spring Hibernate整合源代码

    9. **错误和异常处理**:Spring提供了一致的异常处理机制,将Hibernate抛出的数据库异常转换为业务友好的异常类型。 在提供的压缩包文件名称列表中,我们可以看到"Spring_2600_Registration_4"、"Spring_2300_...

    导入excel到数据库

    在IT行业中,将Excel数据导入数据库是一项常见的任务,特别是在数据分析、报表生成以及数据管理等领域。本文将详细讨论如何实现这个过程,并重点介绍如何利用第三方类库来帮助我们更高效地完成这项工作。 首先,让...

    10.6struts2+hibernate+spring的整合源代码

    SSH(Struts2+Spring+Hibernate)框架整合是Java Web开发中常见的一种技术栈,能有效地提高开发效率和代码质量。 Struts2作为MVC框架,主要负责处理HTTP请求,控制应用程序的流程,提供视图和控制器的分离。它的...

    Spring常见面试题与答案,IOC AOP等

    答案:JDBC 抽象和 DAO 模块用于简化数据库代码,避免数据库资源错误关闭导致的问题,并提供了一个统一的异常访问层。 8. 对象/关系映射集成模块 答案:对象/关系映射集成模块支持使用 ORM 工具,如 Hibernate、...

    Spring Boot整合Spring Batch,实现批处理

    在Java开发领域,Spring Boot和Spring Batch的整合是构建高效批处理系统的一种常见方式。Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,...

    spring模板模代码

    在Spring框架中,模板模式是一种常见的设计模式,用于简化复杂操作的实现,提供了一种抽象层,使得开发者可以通过实现特定接口来处理不同类型的业务逻辑,而无需关心底层的执行细节。这种模式在Spring中体现得...

    第一节课-Spring源码分析之-常见底层核心注解-2 (2)1

    JDBC模块提供了一个JDBC抽象层,简化了数据库操作,减少了与特定数据库供应商错误处理的复杂性。ORM模块支持与各种ORM框架(如Hibernate、JPA等)的交互,使得对象-关系映射更加便捷。OXM模块则是对Object-XML映射的...

    JAVA Spring boot JDBC同步不同服务器oracle数据库

    Java Spring Boot 框架与JDBC的集成是企业级应用开发中常见的一种技术组合,尤其在处理数据库交互时。本教程将详细讲解如何利用Spring Boot和JDBC实现跨服务器Oracle数据库的同步。 首先,Spring Boot简化了Java...

    java 连接数据库实现用户登录功能

    而`java 连接Oracle数据库实现用户登录.rar`文件则可能包含了完整的Java源代码示例,供初学者参考和学习。 总之,通过Java连接Oracle数据库实现用户登录功能,开发者需要理解JDBC的基本操作,能够编写SQL查询语句,...

    webservice源代码Spring+JDBC

    使用Spring框架时,Spring JDBC模块提供了更高级别的抽象,简化了数据库操作,例如模板类(JdbcTemplate和NamedParameterJdbcTemplate),使得开发者可以更方便地编写数据库访问代码,同时避免常见的资源管理错误。...

    java Spring Boot 1.5.22 JPA数据库 JDK1.6

    Spring Data JPA通过自动配置、查询方法等特性,大大降低了数据库操作的复杂性。开发者只需要定义Repository接口,Spring Data JPA就能自动生成相应的CRUD操作。 JDK1.6是Java Development Kit的一个早期版本,虽然...

Global site tag (gtag.js) - Google Analytics