首頁 >資料庫 >mysql教程 >如何正確地將 java.util.Date 欄位插入資料庫?

如何正確地將 java.util.Date 欄位插入資料庫?

DDD
DDD原創
2025-01-06 10:59:42763瀏覽

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. 使用 setDate() 方法PreparedStatement 以轉換後的物件設定日期欄位的值。

範例:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn