程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java.util.Date与java.sql.Date大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决java.util.Date与java.sql.Date?

开发过程中遇到java.util.Date与java.sql.Date的问题如何解决?下面主要结合日常开发的经验,给出你关于java.util.Date与java.sql.Date的解决方法建议,希望对你解决java.util.Date与java.sql.Date有所启发或帮助;

恭喜,你已经使用JDBC达到了我最喜欢的功能:Date类处理。

基本上,数据库通常至少支持三种形式的日期时间字段,即日期,时间和时间戳。它们每个在JDBC中都有一个对应的类,并且每个都进行了扩展java.util.Date。这三个中的每个的快速语义如下:

  • java.sql.Date对应于sql DATE,这表示它存储年,月和日,而时,分,秒和毫秒被忽略。此外,sql.Date它与时区无关。
  • java.sql.Time对应于sql TIME,并且应该很明显,它仅包含有关小时,分钟,秒和毫秒的信息。
  • java.sql.timestamp对应于sql timestAMP,它是具有可自定义精度的精确日期,以纳秒为单位(请注意,util.Date仅支持毫秒!)。 与这三种类型相关联使用JDBC驱动程序时,最常见的错误之一是这些类型的处理不正确。这意味着sql.Date特定于时区,sql.Time包含当前的年,月和日等。

确实取决于字段的sql类型。PreparedStatement有三个值的设置器,#setDate()分别是for sql.Date,#setTime()for sql.Time和#settimestamp()for sql.timestamp

请注意,如果你使用的ps.setobject(fIEldindex, utilDateObject);话,实际上可以util.Date为大多数JDBC驱动程序提供一个普通的驱动程序,它会很高兴地吞噬它,就好像它是正确的类型一样,但是当你随后请求数据时,你@R_412_9381@实际上丢失了一些东西。

我的意思是将毫秒/纳秒保存为普通的long,并将其转换为你正在使用的任何对象(强制性的joda-time插件)。一种可行的方法是将日期部分存储为一个长期时间部分,将日期和时间部分存储为另一个,例如现在将是20100221和154536123。这些不可思议的数字可以在SQL查询中使用,并且可以从数据库移植到另一个数据库中,将使你完全避免JDBC / Java Date API:s的这一部分。

解决方法

java.util.Datevs java.sql.Date:什么时候使用,为什么?

大佬总结

以上是大佬教程为你收集整理的java.util.Date与java.sql.Date全部内容,希望文章能够帮你解决java.util.Date与java.sql.Date所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。