JDBC 4.0 [JavaWorld (2006年9月号)]
1. JDBC4.0は以前のバージョンと何が違うの?
JDBC4.0の主要な変更点として
EoD(Ease of Development)の実現のため、
以下のような新しい機能やインターフェースが
導入されたことが挙げられる。
(1) アノテーションとDataSetが新しく導入された。
(2) 例外処理が強化された。
(3) XMLデータを扱うインターフェースSQLXMLが導入された。
(4) Connectionの状態を監視しやすくなった。
(5) RowIdのサポートにより高パフォーマンスなロジックを記述できるようになった。
(6) 自動的にドライバがロードされるようになった。(Class.forNameの呼び出しは不要になる!)
((1)は特にへぇ~と思ったのでもう少しだけ詳細を。)
(他の変更点については本書を読むか、仕様書を参照していただきたく。)
2. アノテーションとDataSetを使うと何がうれしいの?
実装が簡素化される。
コネクションからデータのリストを取得するコードは以下の2行だけ。
UserQueries userQueries = con.createQueryObject(UserQueries.class)
DataSet
では、SQLはどこに書くかというと、こんな感じ。
interface UserQueries extends BaseQuery {
@Select(sql="SELECT userId, password FROM user")
DataSet
}
java.sql.BaseQueryインターフェースを継承した
インターフェースを作成し、
SELECT文やUPDATE文のアノテーションを記述していく。
メソッドの戻り値(上記の例ではUser)はPOJOであり、
SELECT文に対応したフィールドと
そのゲッター・セッターメソッドを用意すれば良いと思われる(?)。
DataSetはjava.util.Listを継承しているため、
検索結果が複数行になっても大丈夫。
-----------------------------------------------------------------------
ついこの間、Java SE 5.0がリリースされたと思ったら、
今秋にはJava SE 6.0(Mustang)がリリースされてしまいますよ。
## 上記のJDBC4.0はJava SE 6.0に含まれているものです。
いやはや、油断しているとあっという間に置いてかれますね。
ところで、全然関係ないですが、
昔Java 2 SE(J2SE)と呼ばれていたものが
"2"が取れて、Java SEになったのは知ってました。
でも、それだけじゃなかった・・。
なんと、6以降のバージョンは少数部分をつけないそうな。
なので、正確にはJava SE 6.0ではなくJava SE 6となり、
上記の記述は間違いということになる。
さらに、既にリリース済のJava SE 5.0 (Tiger)。
5.1はリリースされないんですって。(←知るの遅すぎ?)
つまり、5.0 (Tiger) → 6 (Mustang) → 7 (Dolphin) とバージョンアップしていく。
どうりでリリースが早いはずだ。
【参考リンク】
JDBC 4.0 Specification
http://www.jcp.org/en/jsr/detail?id=221