我有一个插入到MySQL数据库中的JSON对象。
ps = con.prepareStatement("INSERT INTO tableA(a, b, c, d_json)" +
" VALUES(?,?,?,cast(? AS JSON))", Statement.RETURN_GENERATED_KEYS);
// some code
ps.setObject(4, jsonValue);
我将字符串的哈希图插入为:
Map<String, String> map = new HashMap<String, String>();
map.put("key", "value");
map.put("key1", "value1");
map.put("key2", "value2");
但是json编码如下:
'“ base64:type15:rO0ABXNyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKRvckkACXRocmVz \ naG9sZHhwP0AAAAAAAAx3CAAAABAAABnZhbHVlMXQABGYT1J1A
我想插入一个字符串代替。我在S.O上看到了一些帖子,但没有找到任何适当的方法来修复它。任何帮助,将不胜感激。谢谢!
我有一个插入到MySQL数据库中的JSON对象。 ps = con.prepareStatement(“ INSERT INTO tableA(a,b,c,d_json)” +“ VALUES(?,?,?,cast(?AS JSON))”,Statement ....
Java Mysql驱动程序不支持Hashmap的自动转换。实际上,如果在setObject
中使用未知类型,它将使用默认的Java序列化将其转换为可以处理的类型。数据库接收一个包含序列化HashMap的字节数组。 cast(? as JSON)
将其转换为可以存储在BASE64编码的字节数组列中的内容。