Hatena::ブログ(Diary)

やねこやね RSSフィード

つらつらと思いつくまま。放置も甚だしい日記にもなりそうにない悪い見本。

2009-01-21

[][]ResultSetMetaDataのgetColumnLabel()とgetColumnName()

基本この2つのメソッドは同じ値を返す実装に各JDBCドライバはなってると思うのだけど(少ない私の経験上は今までそうだった)、mysql-connector 5.1.6で初めて違うパターンに巡り合いました。

「select xxx as yyy from zzz」

なんてSQLを書くとまあ、「yyy」が返ってくるのを期待するわけなんですが、mysql-connector 5.1.6では、getColumnLabel()だと「yyy」、getColumnName()だと「xxx」。

数年前MySQL使った時はこんな結果じゃなかった気がするなあ。

Java SE 6 から採用のJDBC4.0がらみの変更やもしれん(未確認)。Java SE 6のJavaDocのコメントを見る限りにおいてはこれが正しい動作なような気がするし。


まあDAOのライブラリでも自作しないと触らない部分ではあるとは思いますが。

MeijiKMeijiK 2011/03/06 01:55 Connector/J 5.0 -> 5.1でご指摘のような動作になりました。これはJDBCの仕様に沿ったものになります。

http://dev.mysql.com/doc/refman/5.1/en/connector-j-installing-upgrading.html#connector-j-installing-upgrading-5-1

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/koyane/20090121/1232506106
Connection: close