在Oracle JDBC访问中加入Spring特性
2007-05-10 12:20:43 来源:WEB开发网sql-error-codes.xml 中的 value 元素的主体中的整数由逗号分隔,它们对应于前面所述的供应商特有的错误码的数字部分。在表 1 中列出了 "badSqlGrammarCodes" 类别中的许多数字码。17006 代码是一个 JDBC 驱动程序错误码,它指示“无效的列名”。代码清单 4 中的 property 元素标记的 name 属性指示 Spring 框架使用哪种类型的异常来处理那些特定的错误码。例如,917 (ORA-00917) 错误将导致 Spring 框架抛出一个非强制的 BadSqlGrammarException。因为该配置文件是 XML 格式的并且在代码的外部,因此可以很容易地将其他代码添加到该文件中,用于抛出最适合于特定供应商错误码的基于 Spring 的 JDBC 异常。
出于各种原因,您可能希望抛出与数据库的错误码对应的特定异常。例如,您可能希望选择处理 SQLException 正常抛出的情况,而不是处理所有的情况。因为在许多情况下,在运行时您无法对代码作任何处理。通过为数据库开发人员创建一个更细粒化的异常层次结构,以及通过提供特定数据库错误和特定异常之间的一个松散耦合的连接,Spring 框架使您能够更轻松地处理那些容易处理的异常,而选择忽略不能合理处理的非强制异常。
Spring 为 JDBC 支持提供的特别方便的异常类之一是 BadSqlGrammarException。该异常类提供了一个名称为 getSql() 的方法,该方法将返回在抛出异常时正被调用的 SQL 语句。因为该类可以识别 SQL 的特征(它不是一个通用的 DAO 类),因此它还通过 getSQLException() 方法提供了标准 SQLException 的一个句柄。
除了将其他的 Oracle 特有的错误码添加到 sql-error-codes.xml 文件中以将它们映射至现有的由 Spring 提供的异常类之外,您还可以创建定制的异常处理类。然后可以编写一个定制的 SQLExceptionTranslator 类来将 Oracle 错误码与这些定制的异常处理类连接起来。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接