首页 >数据库 >mysql教程 >如何使用 Java 正确地将 `java.util.Date` 插入数据库?

如何使用 Java 正确地将 `java.util.Date` 插入数据库?

Susan Sarandon
Susan Sarandon原创
2025-01-06 10:46:41183浏览

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

Java 日期 - 插入数据库

要将带有 java.util.Date 字段的记录插入数据库,您将需要将 java.sql.PreparedStatement 与 java.sql.Date 一起使用或java.sql.Timestamp.

原始代码和问题

原始代码的问题是您尝试将 java.util.Date 直接插入到数据库作为字符串。相反,您应该将 java.util.Date 转换为 java.sql.Date 并使用准备好的语句插入值:

java.util.Date 到 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn