自从 java 发布的第一个版本开始就已经包含 JDBC 了。目前已经有 10 个年头了。 JDBC4.0 将要被打包到 java6.0 里( java SE 是 J2SE 新的名字)。它展现设计的重大提升和提供更加丰富的 API ,更加重视简易开发和提高生产力 。
本文将讨论一些 JDBC 在改善设计和提高性能上的重要的变化。但是不能列举每一个变化。
注解和泛型
我想你已经了解了包含在 JAVA 5.0 的注解( annotations ) 和泛型( generic 也有翻译范型)。 JDBC4.0 也引进了注解和泛型 DataSet ,这使得执行 sql 语句和 SQL DML ( data manipulation language ) 定义变的简单。
在新的 API 里定义了一套 Query 和 DataSet 接口。 Query 接口定义了一套方法,这些方法描述了 SQL 的 select 和 update 语句。而且详细介绍了结果集如何绑定为一个 DataSet 的。因为泛型所以 DataSet 是可以带参数的。因此可以说 DataSet 接口是类型安全的( type-saft ) .
所有 Query 接口都要从 BaseQuery 接口继承。可以通过 Connection.createQueryObject() 或者 DataSource.createQueryObject() 得到Query对象。
一个DataSet接口都继承java.util.List。 DataSet 是有列概念的数据集,能从 Query 接口得到,并且可以带有参数。 DataSet 可以在连接和断开连接的情况下使用。从而 DataSet 实现了 ResultSet (连接) 或者 CachedRowSet (可以断开连接)。因为DataSet是java.util.List的子接口,所以可以通过java.util.Iterator来访问每一行。
DataSet 接口可以带系统或者用户自己定义的类作为参数。通过两种方法你可以实现:构造函数或者 JavaBeans 对象,任何一个办法都能达到将用户自定义的类绑定到结果集的列里。但是在其它支持 JavaBeans 的框架里,用 JavaBeans 对象的实现就显更加容易使用。
下面简单举例说明如何通过新的 API 创建和运行 SQL 查询。用用户自定义的类来定义结果集。(拷贝时候小心有制表符)
pubic class Employee {
private int employeeId;
private String firstName;
private String lastName;
public int getEmployeeId() {
return employeeId;
}
public setEmployeeId(int employeeId) {
this.employeeId = employeeId;
}
public String getFirstName() {
return firstName;
}
public setFirstName(String firstName) {
this.firstName = firstName;
}
pubic String lastName() {
return lastName;
}
public setLastName(String lastName) {
this.lastName = lastName;
}
}
interface EmployeeQueries extends BaseQuery {
@Select (sql="SELECT employeeId, firstName, lastName FROM employee")
DataSet<Employee> getAllEmployees ();
@Update (sql="delete from employee")
int deleteAllEmployees ();
}
Connection con = ...
EmployeeQueries empQueries = con.createQueryObject (EmployeeQueries.class);
DataSet<Employee> empData = empQueries.getAllEmployees ();
异常处理的增强:
1. 为 SQLException 分为两类 transient 和 non-transient 。
2. 支持连锁的异常。
3. 继承了 Iterable 接口。
因为继承了Iterable 所以你可以这样写:
catch(SQLException ex) {
for(Throwable t : ex) {
System.out.println("exception:" + t);
}
}
参考
http://www.javaworld.com/javaworld/jw-05-2006/jw-0501-jdbc.html
JSR 221: JDBC 4.0 Specification:
http://www.jcp.org/en/jsr/detail?id=221
未完
分享到:
相关推荐
当用jdbc连接数据库时,如果JDK是1.6及其以上版本最好使用sqljdbc4.0驱动
注:sqljdbc4.jar如果jdk1.4不支持,需要用jdk1.6 用tomcat发布,如果连接不上,清除一下work目录中的生成文件,再次启动服务。
jdbc4.0规范,不错的书
微软JDBC驱动4.0,支持 SQL2008,Java 5.0 平台以上支持。
sqljdbc4.0 jar包,下载后进行解压,解压后将文件重命名sqljdbc4-4.0.jar存放到maven创库路径下
JDBC 连接方法及驱动的使用\SQL SERVER 2008 JDBC\eeclipse jdk1.6 下用sqljdbc4.0驱动连接数据库.java
微软不让从maven上下载这个jar,现在上传方便开发者取用
spring-jdbc的jar包,小编亲测可用,请放心下载。欢迎给小编留言哦
关于JDBC4.0API接口的描述,很好很强大!
JDBC4.0 PDF 教程。。。。。。。。。。。。。。。。。
sqljdbc4.0至4.2.版本,java开发环境下连MSSQL数据库的JAR包,能用
DB2 V9.7中附带的JDK是v1.6,支持JDBC4.0。安装完DB2 Server后 "SQLLIB\java"目录中db2jcc4.jar (for JDBC)和sqlj4.zip (for SQLJ)也是用于支持JDBC 4的。但由于缺省CLASSPATH路径中一般设置为db2jcc.jar,而不是db2...
主要介绍了使用JDBC4.0操作Oracle中BLOB类型数据的方法,我们需要使用ojdbc6.jar包,本文介绍的非常详细,需要的朋友可以参考下
Myeclipse连接sqlserver数据库。java连接数据库,需要连接类驱动。
SQL server的jdbc驱动,版本4.0.0,适用于大多sqlserver数据库。
从微软官方下载的Java连接sqlserver 的jdbc驱动,3.0和4.0 都有,非常全,中英文都有
Microsoft SQL Server 2008的JDBC 4.0驱动。
sqljdbc_4.0 驱动
Java 利用 JDBC 连接 Sqlsever2012 实现 增删改查 必备的驱动,解压后使用文件‘sqljdbc4.jar’ 文章地址 http://blog.csdn.net/xyj2014/article/details/50410685