扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Java SE 5中,SQLException类通过实现Iterable接口,增加了for-each循环支持的特性。这个循环的轨迹将会包括SQLException和其异常成因。这里的代码片断展示了SQLException中增加的增强型for-each环特性。
catch(SQLException ex) { for(Throwable e : ex ) { LOG.error("Error occurred: " + e); } } |
对国际字符集转换的支持
以下是JDBC类处理国际字符集的新增特性:
对大对象(BLOBs and CLOBs)支持的改进
以下是JDBC 4.0处理LOBs的新增特性:
现在,让我们来看一看java.sql和javax.jdbc包的新类,以及他们所提供的服务。
JDBC 4.0 API:新类
RowId (java.sql)
正如先前所介绍的,该接口是对数据库中SQL ROWID值的展示。ROWID是一种SQL内建的数据类型,用来标识数据库中的一行特定数据。ROWID经常用于从表中返回查询结果,而这些结果行往往缺少唯一ID字段。
getRowId和setRowId等CallableStatement、PreparedStatement和ResultSet接口的方法允许程序员访问SQL ROWID值。RowId接口还提供了一个方法(叫getBytes())把ROWID值作为一个byte型数组返回。DatabaseMetaData接口有一个名为getRowIdLifetime的新方法,用以确定某一RowId对象的存活时间。RowId的存活时间范围可以是如下三种类型:
DataSet (java.sql)
DataSet接口提供了对执行SQL Query后所返回数据类型的安全检查。DataSet还可以运行在连接或非连接模式。在连接模式下,DataSet类似于ResultSet的功能;而在非连接模式下,他类似于CachedRowSet的功能。由于DataSet继承自List接口,因此我们能对查询返回的记录行进行迭代。
对已有的类,JDBC 4.0也新增了不少方法。比如,Connection新增了createSQLXML和createSQLXML方法,ResultSet新增了getRowId方法。
范例应用
本文所示的范例应用是一个贷款处理应用软件,他有一个贷款搜索页面,用户可以通过输入贷款ID提交查询表,以获取贷款详情。贷款搜索页面调用一个控制器对象,而该对象又调用一个DAO对象访问后台数据库,以取回贷款详情。这些详情包括贷款人、贷款数额、贷款截至日期等信息,并显示在贷款详情屏幕上。后台数据库中,我们有一个名为LoanApplicationDetails的表,来存储贷款软件的详情。
Name | Value |
Project Name | JdbcApp |
Project Directory | c:\dev\projects\JdbcApp |
DB Directory | c:\dev\dbservers\apache\derby |
JDK Directory | c:\dev\java\jdk_1.6.0 |
IDE Directory | c:\dev\tools\eclipse |
Database | Apache Derby 10.1.2.1 |
JDK | 6.0 (beta 2 release) |
IDE | Eclipse 3.1 |
Unit | Testing JUnit 4 |
Build | Ant 1.6.5 |
下表所列的是我们连接贷款详情Apache Derby数据库所需的JDBC参数。这些参数存放于一个名为derby.properties的文本文件中,并置于项目的etc/jdbc目录下(见表6)。
Name | Value |
JDBC Driver File | LoanApp\META-INF\services\java.sql.driver |
Driver | org.apache.derby.ClientDriver |
URL | jdbc:derby:derbyDB |
User Id | user1 |
Password | user1 |
请注意:Apache Derby数据库提供了两种JDBC驱动:嵌入式驱动(org.apache.derby.jdbc.EmbeddedDriver)和客户端/服务器驱动(org.apache.derby.jdbc.ClientDriver)。我在范例应用中使用客户端/服务器版驱动。
以下是使用ij工具来启动Derby数据库服务器并创建新数据库的命令。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者