ホームページ > データベース > mysql チュートリアル > Java を使用して「java.util.Date」をデータベースに適切に挿入するにはどうすればよいですか?

Java を使用して「java.util.Date」をデータベースに適切に挿入するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-06 10:46:41
オリジナル
175 人が閲覧しました

How to Properly Insert a `java.util.Date` into a Database Using Java?

Java Date - データベースへの挿入

java.util.Date フィールドを持つレコードをデータベースに挿入するには、次の手順を実行します。 java.sql.Date または java.sql.PreparedStatement を指定して java.sql.PreparedStatement を使用する必要があります。 java.sql.Timestamp.

元のコードと問題

元のコードの問題は、java.util.Date を直接挿入しようとしていることです。データベースを文字列として扱います。代わりに、java.util.Date を java.sql.Date に変換し、準備されたステートメントを使用して値を挿入する必要があります:

java.util.Date to java.sql.Date

java.util.Date myDate = new java.util.Date("01/01/2009");
java.sql.Date sqlDate = new java.sql.Date(myDate.getTime());
ログイン後にコピー

準備完了ステートメント

sb.append("INSERT INTO USERS");
sb.append("(USER_ID, FIRST_NAME, LAST_NAME, SEX, CRDATE) ");
sb.append("VALUES ( ");
sb.append("?, ?, ?, ?, ?");
sb.append(")");

Connection conn = ...; // get the connection somehow
PreparedStatement stmt = conn.prepareStatement(sb.toString());

stmt.setString(1, userId);
stmt.setString(2, myUser.GetFirstname());
stmt.setString(3, myUser.GetLastname());
stmt.setString(4, myUser.GetSex());
stmt.setDate(5, sqlDate);
ログイン後にコピー

利点

プリペアド ステートメントを使用すると、次のような利点があります。

  • 文字列が自動的にエスケープされ、潜在的な SQL が防止されます。インジェクション攻撃。
  • 型安全性を提供し、正しい値を保証します。データベースに挿入されます。

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

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