当前位置: 移动技术网 > IT编程>开发语言>Java > springboot插入时间出现 at [Source: (PushbackInputStream); line: 9, column: 12]的问题。

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

2020年08月10日  | 移动技术网IT编程  | 我要评论

插入的代码数据的中有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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网