gpt4 book ai didi

Java Date - 插入数据库

转载 作者:太空狗 更新时间:2023-10-29 23:02:38 25 4
gpt4 key购买 nike

我需要找到一种方法来将带有 java.util.Date 字段的记录插入到数据库中,但我被卡住了。

有人知道我该怎么做吗?现在我有类似的东西。

        java.util.Date myDate = new java.util.Date("01/01/2009");

sb.append("INSERT INTO USERS");
sb.append("(USER_ID, FIRST_NAME, LAST_NAME, SEX, DATE) ");
sb.append("VALUES ( ");
sb.append(" '" + userId + "'");
sb.append(", '" + myUser.GetFirstname() + "' ");
sb.append(", '" + myUser.GetLastname() + "' ");
sb.append(", '" + myUser.GetSex() + "' ");
sb.append(", '" + myDate + "'");
sb.append(")");

Util.executeUpdate(sb.toString());

但是当我运行这样的程序时,我得到了错误: 日期时间值的字符串表示的语法不正确。

下面是sql语句:

INSERT INTO USERS (USER_ID
, FIRST_NAME
, LAST_NAME
, SEX
, CRDATE)
VALUES (
'user'
, 'FirstTest'
, 'LastTest'
, 'M'
, 'Thu Jan 01 00:00:00 CST 2009')

谢谢

最佳答案

在我回答您的问题之前,我想提一下,您可能应该考虑使用某种 ORM 解决方案(例如 Hibernate),封装在数据访问层之后。你在做什么似乎是非常反面向对象的。诚然,我不知道您的其余代码是什么样子,但一般来说,如果您开始看到自己使用大量实用程序类,则您可能采用了过于结构化的方法。

如其他人所述,要回答您的问题,请查看 java.sql.PreparedStatement,并使用 java.sql.Datejava.sql。时间戳。类似的东西(尽可能多地使用您的原始代码,您可能想要对其进行更多更改):

java.util.Date myDate = new java.util.Date("10/10/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, DATE) ");
sb.append("VALUES ( ");
sb.append("?, ?, ?, ?, ?");
sb.append(")");

Connection conn = ...;// you'll have to get this 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);

stmt.executeUpdate(); // optionally check the return value of this call

这种方法的另一个好处是它会自动为您转义您的字符串(例如,如果要插入姓氏“O'Brien”的人,您的原始实现就会出现问题)。

关于Java Date - 插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1081234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com