[Seasar-user:9428] Re: [S2Dao] Javaのデータ型のプロパティでの検索結果について
Hirotaka HONMA
[E-MAIL ADDRESS DELETED]
2007年 7月 25日 (水) 15:47:16 JST
本間@茅場町です。
on 25 Jul 2007 15:21:59 +0900
in [Seasar-user:9426] [S2Dao] Javaのデータ型のプロパティでの検索結果について
山下 真里 <[E-MAIL ADDRESS DELETED]> wrote:
> MySQLのDate型のカラムに対して、
> JavaのDate型で検索した場合に、1件以上ヒットするデータが
> データを取得できませんでした。
> ログに出力されているSQLを利用して、コマンドラインから
> SQLを流してみると、1件以上ヒットしてデータが取得されます。
selectDaysBetweenの引数に渡しているjava.util.Dateが、時分秒
ミリ秒の値を持っているのでは? と推測します。
(データベース側は「年月日」なのに、WHERE句は「年月日時分秒ミ
リ秒」であるため、WHEREがヒットしないのかと。)
引数daysの、時分秒ミリ秒の値をゼロにして頂けますか?
final Calendar c = Calendar.getInstance();
c.clear();
c.set(Calendar.YEAR, 2007);
c.set(Calendar.MONTH, Calendar.JULY);
c.set(Calendar.DAY_OF_MONTH, 25);
final Date days = c.getTime(); // このdaysをselectDaysBetweenに渡す
よろしくお願いします。
> 私の理解が不足しるのかと思いますが、トレースログに出力されている
> SQLと実際に、実行されているSQL文は一緒なのでしょうか?
ログに出力しているSQL文は人間が目で見て確認するためのもの
で、実際に発行されるSQL文とは違うものです。
実際には、
SELECT control.rd, control.days, control.rnum FROM control WHERE days = ?
というSQL文からPreparedStatementを構築し、"?"へ引数daysをバ
インドする、という動作をしています。
Seasar-user メーリングリストの案内