首页 >数据库 >mysql教程 >如何正确地将 java.util.Date 字段插入数据库?

如何正确地将 java.util.Date 字段插入数据库?

DDD
DDD原创
2025-01-06 10:59:42786浏览

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