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
      • 必須提供一個無參構造函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章