• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:お世話になっています。)

JAVAでdate型のデータをINSERTする際のエラーについて

このQ&Aのポイント
  • JAVAの勉強中の方が、date型のデータをINSERTする際にエラーが発生しています。
  • 現在、text型のデータのみをINSERTすることはできることを確認しています。
  • 変数を使用してdate型のデータをINSERTする方法を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.2

APIは読みました? setDate()の引数はjava.sql.Date型です。 java.sql.Date型にはDate(long date)というコンストラクタがあります。 ですので、 >pstmt.setDate(2,dt); を pstmt.setDate(2,new java.sql.Date(dt.getTime()) とすればいいです。

omusobababa
質問者

お礼

何度もありがとうございます。 APIは読んだのですが、newで作成して…など 考えが至りませんでした。勉強になりました! ありがとうございます。

その他の回答 (1)

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

たとえば java.sql.Date dt = new java.sql.Date(new java.util.Date().getTime()); pstmt.setDate(index,dt); という感じにすれば、当日日付が登録できます。 ですので >new java.util.Date() の部分を登録したい日付のDateオブジェクトに変更すればいいです。 ちなみに、このコードってエラーにならないのですか? String型の変数をsetInt()に渡してますけど・・ SQLもこれではダメな気がしますけど・・ まずはAPIを確認してみてはいかがですか http://java.sun.com/javase/ja/6/docs/ja/api/java/sql/PreparedStatement.html

omusobababa
質問者

補足

ご回答ありがとうございます。 >ちなみに、このコードってエラーにならないのですか? >String型の変数をsetInt()に渡してますけど・・ 上記のご指摘通りです。 setStringの間違いでした…ご指摘ありがとうございます。 Calendar cal = Calendar.getInstance(); cal.set(2010,9,1); java.util.Date dt = cal.getTime(); ・・・省略・・・ pstmt.setString(1,sampleText); pstmt.setDate(2,dt); 上記のようにソースの修正してみたのですが pstmt.setDate(2,dt); ←ここでeclipseでエラーになってしまいます。 pstmt.setDate(2,(java.sql.Date)dt);  に修正するとエラーはでなくなるのですが、コンパイルが通らなくなってしまいます。 どのように修正するのがいいのでしょうか? 何度もすみません、どうぞよろしくお願いいたします。

関連するQ&A