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