如果我使用gson将类序列化为包含日期的json,如何使用myBatis将json的值插入到我的h2或MySQL数据库中?
下面的json使用以下代码构建:
Bean bean = new Bean();
bean.setIsPublished(true);
bean.setPublicationDate(Calendar.getInstance().getTime());
Gson gson = new GsonBuilder().setDateFormat("yyyy-mm-dd-hh:mm:ss").create();
String json = gson.toJson(bean);
这使得json:
{
"isPublished":true,
"publicationDate":"2013-55-10-09:55:07"
}
但是当我将这个json传递给我的insert语句时(使用spring的@RequestBody来构造Bean),该服务返回一个400:Bad Syntax。
这是MyBatis Mapper的插入语句:
INSERT INTO beans (isPublished, publicationDate)
VALUES (#{isPublished}, parseDateTime(#{publicationDate}, 'yyyy-mm-dd-hh:mm:ss');
当我试图插入已解析的json日期时,出现问题,但我不确定是什么。
答案 0 :(得分:2)
只需使用Mysql date_format函数,让数据库为您完成
date_format( #{publicationDate, jdbcType=VARCHAR}, '%Y-%m-%d-%H-%i-%s' )