これで何が変わる?どうなるの?

というのの概要が第3章に書いてあったんですが,以下その和訳を貼り付けときます.
http://ikda.net/fswiki/wiki.cgi?page=JDBC+4%2E0+%BB%C5%CD%CD%BD%F1

アノテーションの利用ってのはまあJavaEE5全般的にそうだから良いとして,日本人的には「国別のキャラクタセットの変換をサポート」(National Character Set Conversion Support)が気になりますね.MySQLユーザ的にはROWIDがJDBC仕様に入っちゃったのが気になりますね.MySQLにはROWIDって無いし.NotSupportedException投げるしかないか?w



3. 新機能の概要
3.1. 変更点の概要

JDBC 4.0 APIは以下の追加変更を含んでいます:

java.sql.Driverを自動的にローディング】

DriverManager.getConnectionはJDBCドライバを自動的にロードするように,JavaSEサービスプロバイダ機構を使するように改変されます.この変更によりClass.forNameの呼び出しは不要になります.

【Ease of Development API

JavaアプリケーションとSQLデータソース間でのSQLによる操作を簡単にするために、さまざまな標準JDBCアノテーションジェネリックDataSetが追加されました.

【ROWIDデータ型】

java.sql.RowIdデータ型が追加されました.これによりJDBCを利用するプログラムはSQLのROWIDにアクセスすることが可能となります.

【各国キャラクタセットの変換をサポート】

JDBCの新しい型としてNCHAR,NVARCHAR,LONGVARCHAR,NCLOBが追加されました.setNString, setNCharacterStream,setNClobメソッドがPreparedStatementインタフェースに追加され,getNClob, getNString,getNCharacterStreamメソッドがCallableStatementインタフェースとResultSetインタフェースに追加されました.updateNClob,updateNString,updateNCharacterStreamメソッドが ResultSetインタフェースに追加されました.

【BLOBおよびCLOBのサポートを強化】

BLOB,CLOB,NCLOBオブジェクトを生成するためのメソッドがConnectionインタフェースに追加されました. PreparedStatementインタフェースにはInputStreamを使ってBLOBオブジェクトを挿入するためのメソッドおよびReader オブジェクトを使ってCLOB,NCLOBオブジェクトを挿入するためのメソッドが追加されました.Blob,Clob,NClobインタフェースにはこれらのオブジェクトが保持しているリソースを解放するために使用するfreeメソッドが追加されました.

SQL/XMLおよびXMLのサポート】

SQL2003はXMLデータをSQLデータストアへ格納するための概念を提供しています.これに関するメソッドが追加され、アプリケーションはXMLデータへアクセスできるようになります.

【ラッパー・パターン】

ベンダーにより実装されているJDBC標準以外のメソッドを使用できるようにするためにJDBCのクラスによるラップを除去する方法が追加されました.

【SQLExceptionの強化】

JavaSEのチェーンされた例外機能のサポートを追加.SQLExceptionはfor-eachループで使用できる反復可能なインタフェースをサポートします.SQLExceptionの2つのカテゴリ,SQLTransientExceptionおよび SQLNonTransientExceptionが追加されました.それぞれのカテゴリは共通のSQLStateクラスの値にマッピングされる新しい SQLExceptionのサブクラスを提供します.

【Connection管理】
接続状態を追跡し、コネクションプール環境でStatementオブジェクトを管理する際に多大な柔軟性をもたらす改良を可能とするための強化がConnectionインタフェースおよびStatementインタフェースに対して行われました.

JDBC APIの変更】

既存のJDBCインタフェースに対して以下の変更が行われています.

■ Connection
createBlob,createClob,createNClob,createQueryObject,isValid,createSQLXML,getClientInfo,setClientInfoメソッドの追加.

■ CallableStatement
getRowId,setRowId,getNClob,getNString,getCharacterStream, getNCharacterStream,setNString,setNCharacterStream,setNClob,getSQLXML, setSQLXMLメソッドの追加.

setClob,setBlobメソッドのオーバーロード

■ DatabaseMetaData
getRowIdLifetime,autoCommitFailureCloseAllResulSets,getFunctions, getFunctionParameters,providesQueryObjectGenerator, getClientInfoProperties,supportsStoredFunctionsUsingCallSyntaxメソッドの追加.

getSchemasメソッドのオーバーロード

■ PreparedStatement
setRowId,setNString,setNCharacterStream,setSQLXML,isPoolable,setPoolable,setNClobメソッドの追加.

setClob,setBlobメソッドのオーバーロード

■ ResultSet

getHoldability,getRowId,updateRowId,getNClob,isClosed,getNString, getNcharacterStream,updateNCharacterStream,updateNString,getSQLXML, updateSQLXML,updateNClobメソッドの追加.

updateObjectメソッドの修正.

■ Statement
isClosed,getResultSetHoldabilityメソッドの追加.

■ DataSource
createQueryObjectメソッドの追加.

■ PooledConnection
addStatementEventListener,removeStatementEventListenerメソッドの追加.

■ SQLInput
readNClob,readNString,readRowId,readSQLXMLメソッドの追加.

■ SQLOutput
writeNClob,writeNString,writeRowId,writeSQLXMLメソッドの追加.

これらの変更によって影響を受けるクラスとインタフェースの一覧はChapter 5 "Classes and Interfaces"(第5章 クラスとインタフェース)を参照して下さい.