javaでデータベース絡みのプログラムをするときによくJDBCのお世話になるのですが、あるツールを開発している時につまづいたのでここに覚書としておいておきます。

題名がわかりにくいですが、要するにこういうことです。
たとえば、このSQL、

このクエリの結果をResultSet に入れてDTOオブジェクトに移す場合、よく私は一旦Map にKey=カラム名、Value=値、という感じで詰め込んで、BeanUtils.populate で、

とやって、DTOに変換してしまいます。
この変換の際に、ResultsetMetaDataを使ってカラム名を取得してMapに入れるんですが、この時そのカラム名は意図しているAlias名ではなく、元のカラム名で出てきます。

そこで調べてみると、次のように「getColumnLabel(columnId)」すれば良いとありました。

あたりまえのことなのかもしれませんが、初心者独学の身としては小一時間ほど悩んでしまいました。

カテゴリー: Javajdbc

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です