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

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

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

如:
只需要这样


                ctime,
            

三、
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类型转为前端时间字符串,也就是说它是双向的。

你可能感兴趣的:(java,spring)