2013-12-11 2 views
0

Если я сериализовал класс в json, который содержит даты, используя gson, как я могу использовать значение json для вставки в мою базу данных h2 или MySQL с помощью MyBatis?MySQL Вставить Gson Date

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 к моему вставить заявление (с использованием @RequestBody Спринга для построения Bean) служба возвращает 400: Bad Syntax.

Вот вставки заявление MyBatis картографа:

INSERT INTO beans (isPublished, publicationDate) 
VALUES (#{isPublished}, parseDateTime(#{publicationDate}, 'yyyy-mm-dd-hh:mm:ss'); 

Когда я пытаюсь вставить разобранный дату JSon, что-то происходит не так, но я не уверен, что.

+0

Вы пытаетесь parseDateTime на логическое значение? – Taylor

+0

К сожалению, типично. Я обновил. – Matt

+0

Приложение никогда не попадает в ваш оператор insert, он не может десериализовать дату вашего JSON. –

ответ

2

Просто используйте функцию date_format Mysql и пусть база данных сделать это для вас

date_format(#{publicationDate, jdbcType=VARCHAR}, '%Y-%m-%d-%H-%i-%s')