欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springboot插入时间出现 at [Source: (PushbackInputStream); line: 9, column: 12]的问题。

程序员文章站 2022-03-03 20:09:13
插入的代码数据的中有ctime这个date类型的时间变量,数据库是datetime类型的ctime。一、首先保证mybatis数据库的resultmap映射正确,javatype是timestamp。二、mapper中的插入方法条件判断,去掉=‘’如:只需要这样 ctime, 三、entity(dto)的ctime上面要加时间转换注解起初我用的是...

插入的代码数据的中有ctime这个date类型的时间变量,数据库是datetime类型的ctime。
一、
首先保证mybatis数据库的resultmap映射正确,javatype是timestamp。

二、
mapper中的插入方法条件判断,去掉=‘’

如:
只需要这样

<if test="ctime!=null ">
                ctime,
            </if>

三、
entity(dto)的ctime上面要加时间转换注解
起初我用的是

 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

controller的插入方法,接收参数为@requestBody。
然后就报了标题的错误。

这就是问题所在,@DateTimeFormat这个注解是用来将传给后台的时间字符串转化为date类型,理论上说可以这么做,但是它有个条件是controller的接收参数必须为@requestParam,即url拼接参数,所以他在使用@requestBody注解的情况下是无效的。
但是又不能不用@requestBody。
因此可以用 @JsonFormat

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")

它作用就大很多了,不仅仅可以实现前端时间字符串转后端的date类型,还能自动将后端的date类型转为前端时间字符串,也就是说它是双向的。

本文地址:https://blog.csdn.net/weixin_41487978/article/details/107893608

相关标签: java spring