CBA

Java SE 6中JDBC 4.0的增强特性8

2019-09-13 19:29:31来源:励志吧0次阅读

Update标注  Update标注用于修饰Query接口方法以更新数据库表中的一条或多条记录。Update标注必须包含一个sql标注类型元素。这里是一个Update标注的例子:

interface LoanAppDetailsQuery extends BaseQuery {

@Update(sql="update LoanDetails set LoanStatus = ?1

where loanId = ?2")

boolean updateLoanStatus(String loanStatus, int loanId);

}

SQL异常处理的增强特性

异常处理是Java编程的一个重要部分,特别是对后台关系数据库进行连接或查询时。SQLException是我们用以指出与数据库相关错误的类。JDBC 4.0在SQLException处理中有不少增强。为了在处理SQLException时获得更好的开发体验,JDBC 4.0版作了如下增强:

1. 新的SQLException子类   2. 对因果关系的支持   3. 对改进的for-each循环的支持  新的SQLException类

SQLException的新子类提供了一种方法,使Java开发人员能写出更方便改动的错误处理代码。JDBC 4.0介绍了两个新的SQLException型别:

• SQL non-transient exception   • SQL transient exception Non-Transient Exception:除非修正引发SQLException异常的代码,否则该异常在再次尝试相同JDBC操作失败后被抛出。表3显示了JDBC 4.0新增的SQLNonTransientException异常子类(SQL 2003规范中定义了SQLState类的值):Exception class SQLState valueSQLFeatureNotSupportedException0ASQLNonTransientConnectionException08SQLDataException22SQLIntegrityConstraintViolationException23SQLInvalidAuthorizationException28SQLSyntaxErrorException42

Transient Exception:当先前执行失败的JDBC操作在没有任何应用级功能干涉的情况下可能成功执行时,该异常被抛出。继承自SQLTransientException的新异常如表4所列:

Exception class SQLState valueSQLTransientConnectionException08SQLTransactionRollbackException40SQLTimeoutExceptionNone

因果关系

SQLException类现在支持Java SE链式异常机制(又称因果工具),它使我们能在一个JDBC操作中处理多条SQLException异常(如果后台数据库支持多条异常特性)。这种情形发生在执行一条可能会抛出多条SQLException异常的语句时。

我们可以调用SQLException中的getNextException()方法在异常链中进行迭代。这里是一些处理getNextException()因果关系的范例代码:

catch(SQLException ex) {

while(ex != null) {

LOG.error("SQL State:" + ex.getSQLState());

LOG.error("Error Code:" + ex.getErrorCode());

LOG.error("Message:" + ex.getMessage());

Throwable t = ex.getCause();

while(t != null) {

LOG.error("Cause:" + t);

t = t.getCause();

}

ex = ex.getNextException();

}

}

亚宝药业薏芽健脾凝胶
上火小便发黄怎么办
孩子突然流鼻血是怎么回事
女性尿液浑浊无症状
分享到: