使用Java在Postgresql中输入Date值

使用Java在Postgresql中输入Date值

本文介绍了使用Java在Postgresql中输入Date值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我正在尝试使用java& PostgreSQL。我有一些行日期数据类型。但是我不能使用以下代码添加任何条目到数据库中:

I am trying to program a database application with java & PostgreSQL. I have some rows with date data type. But i cant add any entries to the database with this code :

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);

如何在postgreSQL行中添加一个日期,在java中有查询?

How can i add a date in a postgreSQL row with queries in java?

推荐答案

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

It's not clear whether or not this is your only problem, but this code is almost certainly not what you want:

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




  • 它会抛出一个 NullPointerException 因为你试图取消引用 null

  • 你正在尝试将年份设置为3890AD( java.util.Date 是基于1900年的多年)

  • 然后你将设置月份到6月。如果你以为你把这个月的时间设定到了5月份,那么再考虑一下 - 日期是以0为基础的月份

  • 重新使用已被弃用 - 应该为您提供一个大警戒灯

  • 然后您尝试将 aDate 转换为 java.sql.Date ,但没有迹象表明它 a java.sql.Date

    • It will throw a NullPointerException because you're trying to dereference null
    • You're then trying to set the year to 3890AD (java.util.Date is 1900-based for years)
    • You're then setting the month to June. If you thought you were setting the month to May, think again - Date is 0-based for months
    • All the methods you're using are deprecated - that should raise a big warning light for you
    • You're then trying to cast aDate to java.sql.Date but there's no sign that it is a java.sql.Date
    • 我会建议:


      • a href =http://joda-time.sf.net =nofollow> Joda Time 作为一个更好的日期/时间API,或 java.util.Calendar

      • 确保在设置值之前实际创建一个实例

      • 可能创建一个新的 java .sql.Date 稍后。

      • Either use Joda Time as a far better date/time API, or java.util.Calendar
      • Make sure you actually create an instance before you set values
      • Probably create a new java.sql.Date later on.

      例如:

      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在Postgresql中输入Date值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

      1403页,肝出来的..

09-06 09:54