すがブロ

sugamasaoのhatenablogだよ

Date型とPreparedStatement

Javaで動的にSQLを組むためにPreparedStatementを使ってSQLを組み立てている。
で、PreparedStatementのgetStringメソッドなどを使ってSQL文へ値を組み込んで行っている。
しかし、DB上Date型のデータに対してSelect文を発行しようとするとうまくいかない。Java側でDate型を生成してsetDateメソッドで値をセットしているつもりなんだけど。
ちなみに、いま詳細設計なしの製造を行っていて、上記の部分でハマっている。これが新規に作ったからコケているのか、setDateメソッドなどの使い方がうまくいかないのか。いまいち正確に問題を切り分けられない。
それにしても、DB上のDATE型に対する値のセットとかってとても面倒な気がする*1。……どっかにうまいやり方があるんだろうか?
追記:
ちょっと調べてみたんだけど、こんな感じで問題は解決できるのか?

Date date = Calendar.getInstance().getTime();
java.sql.Date sqlDate = new java.sql.Date(date.getTime());

このsqlDateをsetDateさせれば良いのか。良いのか。それ以前の問題でこけているのか。明日が楽しみだ。

*1:2006年とかを検索しようとしたら106年とかってセットしないといけないし