JDBC API 4.2 规范在以下几个方面有所改动

3.1 增加对 REF CURSOR 的支持

有些数据库支持 REF CURSOR 数据类型,在调用存储过程后返回该类型的结果集。

3.2 支持大数量的更新

JDBC 当前的方法里返回一个更新数量时,返回的是一个 int,在某些场景下这会导致问题,因为数据集还在不停地增长。

3.3 增加 java.sql.DriverAction 接口

如果一个 driver 想要在它被 DriverManager 注销时得到通知,就要实现这个接口。

3.4 增加 java.sql.SQLType 接口

用来创建一个代表 SQL 类型的对象

3.5 增加 java.sql.JDBCType 枚举类

用来识别通用的 SQL 类型,目的是为了取代定义在 Types.java 类里的常量。

3.6 增加 Java Object 类型与 JDBC 类型的映射(附录表B-4)

增加 java.time.LocalDate 映射到 JDBC DATE

增加 java.time.LocalTime 映射到 JDBC TIME

增加 java.time.LocalDateTime 映射到 JDBC TIMESTAMP

增加 java.time.LocalOffsetTime 映射到 JDBC TIME_WITH_TIMEZONE

增加 java.time.LocalOffsetDateTime 映射到 JDBC TIMESTAMP_WITH_TIMEZONE

3.7 增加调用 setObjectsetNull 方法时 Java 类型和 JDBC 类型的转换(附录表B-5)

允许 java.time.LocalDate 转化为 CHAR, VARCHAR, LONGVARCHAR, DATE

允许 java.time.LocalTime 转化为 CHAR, VARCHAR, LONGVARCHAR, TIME

允许 java.time.LocalTime 转化为 CHAR, VARCHAR, LONGVARCHAR, TIMESTAMP

允许 java.time.OffsetTime 转化为 CHAR, VARCHAR, LONGVARCHAR, TIME_WITH_TIMESTAMP

允许 java.time.OffsetDateTime 转化为 CHAR, VARCHAR, LONGVARCHAR, TIME_WITH_TIMESTAMP, TIMESTAMP_WITH_TIMESTAMP

3.8 使用 ResultSet getter 方法来获得 JDBC 类型(附录表B-6)

允许 getObject 方法返回 TIME_WITH_TIMEZONE, TIMESTAMP_WITH_TIMEZONE

3.9 JDBC API 的变化

以下的 JDBC API 有了一些变化

3.9.1 BatchUpdateException

增加了一个新的构造函数来支持大量的 update,增加 getLargeUpdateCounts 方法。

3.9.2 Connection

增加了 abort,getNetworkTimeout, getSchema, setNetworkTimeout, setSchema 方法。
调整了 getMapType, setSchema, setMapType 方法。

3.9.3 CallableStatement

重载了 registerOutParameter, setObject 方法。
调整了 getObject 方法

3.9.4 Date

增加了 toInstant, toLocalDate 方法。
重载了 valueOf 方法。

3.9.5 DatabaseMetaData

增加了 supportsRefCursor, getMaxLogicalLobSize 方法。
调整了 getIndexInfo 方法。

3.9.6 Driver

调整了 acceptsURL, connect 方法。

3.9.7 DriverManager

重载了 registerDriver 方法。
调整了 getConnection, deregisterDriver, registerDriver 方法。

3.9.8 PreparedStatement

增加了 executeLargeUpdate 方法。
重载了 setObject 方法。

3.9.9 ResultSet

重载了 updateObject 方法。
调整了 getObject 方法。

3.9.10 Statement

增加了 executeLargeBatch, executeLargeUpdate,getLargeUpdateCount, getLargeMaxRows, setLargeMaxRows方法。
调整了 setEscapeProcessing 方法。

3.9.11 SQLInput

增加了 readObject 方法

3.9.12 SQLOutput

增加了 readObject 方法

3.9.13 Time

增加了 toInstant, toLocalTime 方法
重载了 valueOf 方法

3.9.14 Timestamp

增加了 from, toInstant, toLocalTime 方法
重载了 valueOf 方法

3.9.15 Types

增加了 REF_CURSOR, TIME_WITH_TIMEZONE, TIMESTAMP_WITH_TIEMZONE 类型

3.9.16 SQLXML

调整了 getSource setResult 方法

3.9.17 DataSource 与 XADataSource

调整了必须提供一个无参构造函数

扫一扫关注我的微信公众号


ytbean
3.1k 声望714 粉丝

十年学会编程


引用和评论

0 条评论