WEB开发网
开发学院数据库Oracle 在Oracle JDBC访问中加入Spring特性 阅读

在Oracle JDBC访问中加入Spring特性

 2007-05-10 12:20:43 来源:WEB开发网   
核心提示: sql-error-codes.xml 中的 value 元素的主体中的整数由逗号分隔,它们对应于前面所述的供应商特有的错误码的数字部分,在Oracle JDBC访问中加入Spring特性(9),在表 1 中列出了 "badSqlGrammarCodes" 类别中的许多

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 错误码与这些定制的异常处理类连接起来。

上一页  4 5 6 7 8 9 10  下一页

Tags:Oracle JDBC 访问

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接