JavaWeb的实体类定义中一般日期定义成啥格式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb的实体类定义中一般日期定义成啥格式?相关的知识,希望对你有一定的参考价值。

要与数据库进行交互,一个思路是前台拿到的值为String类型,然后再转成Date类型,再插入数据库,还是有其他更好的方式?

前后端交流数据,我建议的是,大家都统一成时间戳.
如果是string,或者Date,不好统一.
每个前端的日期格式不一样,可能A页面传过来的是2020-10-10 12:00 GTM+8之类的.
B页面传过来的又是2020/10/10 12:00,每个人都特么不一样.
现在很多程序员都是前后端一体开发,自己写的可能你还会注意统一一下.但如果不是同一个人写,有模块之间调用,很麻烦的.你转换器到底怎么写才合适?
所以我建议用时间戳,long类型的,这个大家都没有异议,世界统一啊.
我不管你前端怎么显示,怎么定义,但你要传给我后端的时候,我只要时间戳,而我内部我怎么定义,怎么用,那是我的事,我传给你前端时,也只会给你时间戳.
这样的话,你自己开发没问题,跟其他人对接也不会有问题.
而实体类你直接定义成Date就可以.前端传值一个long类型的时间戳,是可以直接装入到Date类型的,这种spring是有默认转换器的,都不用操心.
而Date也可以直接存入数据库中的Date,Time,TimeStamp等时间类型的.也不需要转换.
综上,总结下:数据库是时间格式的(Date,Time,TimeStamp),实体是Date格式的.前端传过来时间戳,Controller里面直接写实体就行.如果写的实体里一个字段,那也用long,然后自己new Date(long),总之跨了不同的范围,就统一成long时间戳.
参考技术A string类型好处理,你的想法是对的,如果获取一个日期类型的数据,后台写起来麻烦的很,直接String类型的传过来,想存String和Date都有办法 参考技术B 前台传递的参数应该都是字符串,接到后再处理,处理方式根据自身项目决定

Oracle数据库使用mybatis的时候,实体类日期为Date类型,mybatis里面定义的是Date类型,插入的时候,时分秒全部是12:00:00问题

实体类中日期定义的是Date类型的,没毛病:

  我在mybatis里面定义的是Date类型的,进行测试的时候发现,数据库插入的日期的时分秒全部都是一样的,都是12:00:00,很郁闷;

     

  后来把mybatis里的类型改为TIMESTAMP,发现查询,插入和修改都正常了。

 

以上是关于JavaWeb的实体类定义中一般日期定义成啥格式?的主要内容,如果未能解决你的问题,请参考以下文章

在java中,这样的类类型编译成啥?

Javaweb复习

C#实体类中如何定义泛型集合类型的属性?

Javaweb复习资料

Oracle数据库使用mybatis的时候,实体类日期为Date类型,mybatis里面定义的是Date类型,插入的时候,时分秒全部是12:00:00问题

Mybatis为实体类定义别名typeAliases