gpt4 book ai didi

java - 使用 Java 在 Postgresql 中输入日期值

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:54:08 26 4
gpt4 key购买 nike

我正在尝试使用 java 和 PostgreSQL 编写数据库应用程序。我有一些日期数据类型的行。但是我不能用这段代码向数据库中添加任何条目:

Date aDate = null;
aDate.setYear(1990);
aDate.setDate(01);
aDate.setMonth(05);

preparedStatement prep = connection.prepareStatement("insert
into exampletable values (?,?);");
prep.setDate(1, (java.sql.Date) aDate);
prep.setDate(2, (java.sql.Date) aDate);

我如何在 java 查询的 postgreSQL 行中添加日期?

最佳答案

不清楚这是否是您唯一的问题,但这段代码几乎可以肯定不是您想要的:

Date aDate = null;
aDate.setYear(1990);
aDate.setDate(01);
aDate.setMonth(05);
  • 它会抛出一个 NullPointerException 因为你正试图取消引用 null
  • 然后您尝试将年份设置为公元 3890 年(java.util.Date 是基于 1900 年的年份)
  • 然后您将月份设置为 6 月。如果您认为您将月份设置为五月,请再想一想 - Date 是从 0 开始的月份
  • 您正在使用的所有方法均已弃用 - 这应该为您敲响警钟
  • 然后您尝试将 aDate 转换为 java.sql.Date 但没有迹象表明它是 java .sql.日期

我建议:

  • 要么使用Joda Time作为更好的日期/时间 API,或 java.util.Calendar
  • 确保在设置值之前实际创建了一个实例
  • 稍后可能会创建一个新的 java.sql.Date

例如:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 1990);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.MONTH, 4); // Assuming you wanted May 1st

java.sql.Date date = new java.sql.Date(calendar.getTime().getTime());

// Ideally specify the columns here as well...
PreparedStatement prep = connection.prepareStatement(
"insert into exampletable values (?,?)");
prep.setDate(1, date);
prep.setDate(2, date);

关于java - 使用 Java 在 Postgresql 中输入日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7662617/

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