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

标签 java datetime netbeans

目前在我的 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/

相关文章:

java - 在 Spring 安全性中允许除一个之外的所有 URL

java - JGrapht:添加顶点和边后动态图错误

mysql - 连接到 Mysql 时,将 Xdebug 与 Netbeans 或 Komodo 结合使用失败

Java 正则表达式 替换字符串时出现问题

java - 在 Java 应用程序中使用 jdbc 字符串错误的 PostgreSQL 连接故障转移

c# - 秒表和 DateTime.UtcNow 产生意外大的时间变化

Symfony 日期时间字段,日和月可选

java - Netbeans profiler 保留内存计算错误?

java - 试图从当前元素中找到下一个 div 元素

php - 使用多列的最旧日期时间