ホームページ > データベース > mysql チュートリアル > PreparedStatements で setDate() を適切に使用して IllegalArgumentException を回避する方法

PreparedStatements で setDate() を適切に使用して IllegalArgumentException を回避する方法

Linda Hamilton
リリース: 2025-01-18 22:37:10
オリジナル
168 人が閲覧しました

How to Properly Use setDate() in PreparedStatements to Avoid IllegalArgumentException?

準備されたステートメントで IllegalArgumentException を使用した setDate() を避ける

ハードコーディングされた SQL クエリからパラメーター化されたプリペアド ステートメントに移行すると、コードの保守性とセキュリティが向上します。 ただし、setDate() を使用すると、IllegalArgumentException が発生する場合があります。このガイドでは、java.sql.Datejava.sql.Timestamp を使用した解決策を示します。

DATE 列の処理

タイプ DATE のデータベース列の場合は、次のメソッドを使用して日付パラメーターを正しく設定します。

  • 文字列の使用: 日付文字列を「yyyy-MM-dd」形式で指定します:

    <code class="language-java"> ps.setDate(2, java.sql.Date.valueOf("2013-09-04"));</code>
    ログイン後にコピー
  • java.util.Date の使用: java.util.Date オブジェクトの変換:

    <code class="language-java"> java.util.Date endDate = ...; // Your java.util.Date object
     ps.setDate(2, new java.sql.Date(endDate.getTime()));</code>
    ログイン後にコピー
  • 現在の日付の設定: 現在の日付を挿入:

    <code class="language-java"> ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));</code>
    ログイン後にコピー

TIMESTAMP 列または DATETIME 列の処理

データベース列のタイプが TIMESTAMP または DATETIME の場合は、setTimestamp() を次のオプションとともに使用します。

  • 文字列の使用: 日付と時刻の文字列を「yyyy-MM-dd HH:mm:ss[.f...]」形式で指定します:

    <code class="language-java"> ps.setTimestamp(2, java.sql.Timestamp.valueOf("2013-09-04 13:30:00"));</code>
    ログイン後にコピー
  • java.util.Date の使用: java.util.Date オブジェクトの変換:

    <code class="language-java"> java.util.Date endDate = ...; // Your java.util.Date object
     ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()));</code>
    ログイン後にコピー
  • 現在のタイムスタンプの設定: 現在のタイムスタンプを挿入:

    <code class="language-java"> ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));</code>
    ログイン後にコピー

これらのガイドラインに従うことで、IllegalArgumentException を回避して、準備されたステートメントに日付とタイムスタンプのパラメーターを確実に設定できます。 データベース列のデータ型に基づいて、適切なメソッド (setDate() または setTimestamp()) を選択してください。

以上がPreparedStatements で setDate() を適切に使用して IllegalArgumentException を回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート