Java SE 5.0(代码叫做:Tiger 老虎)
Java SE 6.0(代码叫做:Mustang 野马)
JDBC 4.0是为了提供更简单的设计和更好的开发者体验。
Java SE 6.0绑定了一个内置的Apache Derby,这是为了方便开发者体验JDBC 4.0的新特性,不用另外下载,安装和配置数据库。
JDBC 4.0的新特性主要包括:
- Auto-loading of JDBC driver class
- Connection management enhancements
- Support for
RowId
SQL type DataSet
implementation of SQL usingAnnotation
s- SQL exception handling enhancements
- SQL XML support
自动加载JDBC驱动类。不用写Class.forName()去注册一个JDBC驱动器,当方法
getConnection被调用时,
DriverManager类将
试图从初始化时已经下载的JDBC驱动器(这些驱动明确地使用相同的class loader加载)中定位一个合适的驱动。
DriverManager类中的方法
getConnection和
getDrivers得到了加强来支持Java SE的Service Provider
mechanism(SPM,服务提供结构),service被定义为一组有名的接口和抽象类。service provider是一个service的独特实现。它也指定了service provider的配置文件被存储在 META-INF/services目录中,
JDBC 4.0 drivers必须包括 META-INF/services/java.sql.Driver这个文件。这个文件包含了实现了java.sql.Driver的所有JDBC 4.0 驱动器的名称。
比如:我们需要连接内置的Apache Derby数据库,META-INF/services/java.sql.Driver中就包含了下面这个实体:
org.apache.derby.jdbc.EmbeddedDriver
以前我们连接数据库会用如下的代码片段:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection conn =
DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
但在JDBC 4.0中, 我们不需要用Class.forName()这行代码。只需要简单地调用getConnection方法就能连接数据库。