gpt4 book ai didi

java - jDateChooser1 需要转换为 varchar 才能存储在数据库中,我该怎么做?

转载 作者:行者123 更新时间:2023-12-02 09:22:22 26 4
gpt4 key购买 nike

目前在我的 jframe 上我有 jdatechooser 并且正在使用此代码:

java.util.Date utilDate = (java.util.Date) jDateChooser1.getDate();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
prepStat.setDate(6, sqlDate);

但是当我单击 jframe 上的“添加”时,这是唯一根本没有输入的数据

该变量称为 Target_Date,并设置为 varchar(如果有帮助的话)。

最佳答案

推荐的解决方案:使用 RDBMS 的date 数据类型

如果您的数据库引擎提供了date数据类型(绝大多数都这样做),请使用它。并使用现代 Java 日期和时间 API java.time 中的 LocalDate,而不是两个 Date 类。它们设计不佳且早已过时。您可能无法更改日期选择器的返回类型,但在收到它时首先要进行转换。

    Date utilDate = jDateChooser1.getDate();
LocalDate localDate = utilDate.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDate();
prepStat.setObject(6, localDate);

这需要一个兼容 JDBC 4.2 的驱动程序,您可能已经拥有了。

不鼓励的解决方案:转换为String

如果不允许更改数据库中的数据类型,请转换为 Java 中的 String:

    prepStat.setString(6, localDate.toString());

其余与之前相同。

您的代码出了什么问题?

这不是我知道的事情,但我怀疑您不允许将 PreparedStatement.setDatevarchar 列一起使用。

链接

关于java - jDateChooser1 需要转换为 varchar 才能存储在数据库中,我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58602685/

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