JDBC 规范中文版 4.2 -第三章 新特性

3.1 新特性概览

JDBC 4.2 API在以下方面引入了新的内容和变更:

  • 添加对REF CURSOR支持REF CURSOR

    该特性主要用于多个数据库支持REF CURSOR数据类型以返回
    存储过程的结果

  • 支持返回大数据量的更新返回值

    用于支持在更新后返回条数一般为int类型,这会导致如更新的数据条数大于int类型的最大值,则会报错

  • 增加 java.sql.Driveraction 接口(JDK 1.8)

    用于通知DriverManager去注销驱动

  • 增加java.sql.SQLType interface接口

    用于创建表示泛型SQL类型的对象的接口,称为JDBC类型或特定于供应商的类型

  • 增加java.sql.JDBCType 枚举

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

  • 增加 Java Object 类型与 JDBC 类型的映射

    • 增加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
  • 增加调用 setObject 和 setNull 方法时 Java 类型和 JDBC 类型的转换

    • 允许 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
  • 使用 ResultSet getter 方法来获得 JDBC 类型

    ​ 允许 getObject 方法返回 TIME_WITH_TIMEZONE, TIMESTAMP_WITH_TIMEZONE

  • JDBC API 的变化

    • BatchUpdateException
      • 增加了一个构造函数来支持大量的更新数据返回
      • 新增getLargeUpdateCounts方法
    • Connection
      • 增加了 abort,getNetworkTimeout, getSchema, setNetworkTimeout, setSchema 方法。
      • 调整了 getMapType, setSchema, setMapType 方法。
    • CallableStatement
      • 重载了 registerOutParameter, setObject 方法。
      • 调整了 getObject 方法
    • Date
      • 增加了 toInstant, toLocalDate 方法。
      • 重载了 valueOf 方法。
    • DatabaseMetaData
      • 增加了 supportsRefCursor, getMaxLogicalLobSize 方法。
      • 调整了 getIndexInfo 方法。
    • Driver
      • 调整了 acceptsURL, connect 方法。
    • DriverManager
      • 重载了 registerDriver 方法。
      • 调整了 getConnection, deregisterDriver, registerDriver 方法。
    • PreparedStatement
      • 增加了 executeLargeUpdate 方法。
      • 重载了 setObject 方法
    • ResultSet
      • 重载了 updateObject 方法。
      • 调整了 getObject 方法。
    • Statement
      • 增加了 executeLargeBatch, executeLargeUpdate,getLargeUpdateCount, getLargeMaxRows, setLargeMaxRows方法
      • 调整了 setEscapeProcessing 方法
    • SQLInput
      • 增加了 readObject 方法
    • SQLOutput
      • 增加了 readObject 方法
    • Time
      • 增加了 toInstant, toLocalTime 方法
      • 重载了 valueOf 方法
    • Timestamp
      • 增加了 from, toInstant, toLocalTime 方法
      • 重载了 valueOf 方法
    • Types
      • 增加了 REF_CURSOR, TIME_WITH_TIMEZONE, TIMESTAMP_WITH_TIEMZONE 类型
    • SQLXML
      • 明确了GetSource和setResult方法
    • DataSource 与 XADataSource
      • 必须提供一个无参构造函数
posted @ 2020-10-25 16:29  lonecloud  阅读(460)  评论(1编辑  收藏  举报
我的博客即将同步至 OSCHINA 社区,这是我的 OSCHINA ID:lonecloud,邀请大家一同入驻:https://www.oschina.net/sharing-plan/apply