PreparedStatement での setDate の使用
コーディング標準に準拠するには、プリペアド ステートメントを利用して変数をバインドするようにコードを更新する必要があります。 SQL 変数をハードコーディングするのではなく。ただし、setDate() メソッドで問題が発生しました。
これを解決するには、次のガイドラインに従う必要があります:
java.sql.Date
テーブルに DATE がある場合列:
-
java.lang.String:
java.sql.Date.valueOf(java.lang.String) メソッドを使用し、「」に文字列を指定します。 yyyy-[m]m-[d]d" format.
-
java.util.Date:
java.util.Date 変数 endDate がある場合は、ps.setDate(2, new) を使用して変換します。 java.sql.Date(endDate.getTime()));.
-
Current:
現在の日付を挿入するには、ps.setDate(2, new java.sql. Date(System.currentTimeMillis()));または ps.setDate(2, java.sql.Date.valueOf(java.time.LocalDate.now())); (Java 8 以降)。
java.sql.Timestamp の使用
TIMESTAMP または DATETIME の場合columns:
-
java.lang.String:
「yyyy-」のタイムスタンプを持つ java.sql.Timestamp.valueOf(java.lang.String) メソッドを使用します。 [m]m-[d]d hh:mm:ss[.f...]" format.
-
java.util.Date:
ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()) を使用して java.util.Date 変数を変換します);.
-
現在:
を取得します。 ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis())); を使用した現在のタイムスタンプまたは ps.setTimestamp(2, java.sql.Timestamp.valueOf(java.time.LocalDateTime.now())); (Java 8 以降).
以上が準備されたステートメントで「setDate()」と「setTimestamp()」を正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。