扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Update标注用于修饰Query接口方法以更新数据库表中的一条或多条记录。Update标注必须包含一个sql标注类型元素。这里是一个Update标注的例子:
interface LoanAppDetailsQuery extends BaseQuery { |
SQL异常处理的增强特性
异常处理是Java编程的一个重要部分,特别是对后台关系数据库进行连接或查询时。SQLException是我们用以指出与数据库相关错误的类。JDBC 4.0在SQLException处理中有不少增强。为了在处理SQLException时获得更好的开发体验,JDBC 4.0版作了如下增强:
新的SQLException类
SQLException的新子类提供了一种方法,使Java开发人员能写出更方便改动的错误处理代码。JDBC 4.0介绍了两个新的SQLException型别:
Exception class SQLState | value |
SQLFeatureNotSupportedException | 0A |
SQLNonTransientConnectionException | 08 |
SQLDataException | 22 |
SQLIntegrityConstraintViolationException | 23 |
SQLInvalidAuthorizationException | 28 |
SQLSyntaxErrorException | 42 |
Transient Exception:当先前执行失败的JDBC操作在没有任何应用级功能干涉的情况下可能成功执行时,该异常被抛出。继承自SQLTransientException的新异常如表4所列:
Exception class SQLState | value |
SQLTransientConnectionException | 08 |
SQLTransactionRollbackException | 40 |
SQLTimeoutException | None |
因果关系
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(); } } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者