2017-11-30 8 views
-2

JSONをmySqlに文字列として保存しようとしています。私は、エラーの下に取得しています:JSONをMySQLに保存する

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key, value) values ('SYSTEM_USER', '2017-11-30 13:28:38.512', 'SYSTEM_US' at line 1 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 

コードスニペット:

final Information informationObj = Information.newBuilder().withCreateBy("").withCreatedDate(null) 
    .withModifiedBy("").withModifiedDate(null).withValue(jsonString).withKey(id).build(); 
    dataRepository.save(informationObj); 

値はデシベルでJSONのタイプです。テーブル内のフィールド:

`_id`, `key`, `value`, `created_date`, `created_by`, `modified_by`, `modified_date` 

json形式のため、コンマなどの文字が含まれている可能性があります。このjsonをMYSQL DBに保存するソリューションは何ですか? ありがとう、

+0

これはあなたがhttps://dev.mysql.com/doc/refman/5.7/en/json.htmlに役立つことを願っています.jsonデータ型があります – SpringLearner

+2

バグがコード内にあります。しかし、あなたのコードがどのように見えるのかわかりません。 –

+0

Intuition:SQLインジェクションの一種。コードを表示する –

答えて

0

この例外は、SQL挿入を壊す制限されたキーワードを使用しようとした場合に発生します。

SYSTEM_USERは、MySQL

の重要語であるあなたは、JPAのインサートを使用していて?

+0

はい、JPAの挿入 –

+0

次に、問題はmusqlの予約されたキーワードに関連しています。 – adia

+0

はい予約されたキーワード "key"の問題です –

関連する問題