ホームページ > データベース > mysql チュートリアル > java.util.Date フィールドをデータベースに適切に挿入するにはどうすればよいですか?

java.util.Date フィールドをデータベースに適切に挿入するにはどうすればよいですか?

DDD
リリース: 2025-01-06 10:59:42
オリジナル
810 人が閲覧しました

How to Properly Insert java.util.Date Fields into a Database?

java.util.Date フィールドをデータベースに挿入する

質問:

しようとするとエラーが発生しますjava.util.Date フィールドを持つレコードをデータベースに挿入します。エラーは、「日時値の文字列表現の構文が正しくありません」と述べています。この問題はどうすれば解決できますか?

解決策:

データベースに java.util.Date フィールドを挿入するには、まずオブジェクト リレーショナル マッピング ( ORM) ソリューション (Hibernate など) を使用して SQL クエリを抽象化します。ただし、これが不可能な場合は、次の手順を使用できます。

  1. java.sql.PreparedStatement を使用して SQL クエリを実行します。
  2. java.util.Date を変換します。インスタンスを java.sql.Date または java.sql.Timestamp オブジェクトに変換します。
  3. 使用PreparedStatement の setDate() メソッドを使用して、変換されたオブジェクトで日付フィールドの値を設定します。

例:

java.util.Date myDate = new java.util.Date("10/10/2009");
java.sql.Date sqlDate = new java.sql.Date(myDate.getTime());

Connection conn = ...; // Obtain the database connection

String sql = "INSERT INTO USERS (USER_ID, FIRST_NAME, LAST_NAME, SEX, DATE) VALUES (?, ?, ?, ?, ?);";
PreparedStatement stmt = conn.prepareStatement(sql);

stmt.setString(1, userId);
stmt.setString(2, myUser.GetFirstName());
stmt.setString(3, myUser.GetLastName());
stmt.setString(4, myUser.GetSex());
stmt.setDate(5, sqlDate);

stmt.executeUpdate(); // Execute the SQL query
ログイン後にコピー

このアプローチは自動的に行われます。文字列をエスケープし、SQL インジェクションの脆弱性を防ぎます。

以上がjava.util.Date フィールドをデータベースに適切に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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