应用场景
MySql版本:5.7
数据库中字段为 json类型,存储一些 json 字符串。(后来发现5.7版本json类型的字段有问题,改成 LongText ,之后的代码能正常并不需要调整)
应用层面使用 JSON处理器 JacksonTypeHandler 来将 json 字符串转化为对应类型。
示例
数据库字段示例
创建json对应实体类
各实体类
测试新增
测试查询
返回结果:
问题:有乱码,后续继续解决乱码问题。
解决中文乱码问题
如上图测试所示,json字段类型中文乱码。
查了一些资料,基本上是因为字符编码问题产生的。我的mysql 为 5.7。数据库及表的字符编码类型都是 utf8mb4,应用层面数据库连接字符串编码为
characterEncoding=UTF-8
从数据库客户端查看已然是乱码了,读出来也是乱码。
在不升级mysql 版和不修改代码的前提下,将 字段类型 由 json 调整成 LongText,问题解决。
数据库层面不乱码,测试界面读出来也不乱码。
参考资料:https://download.csdn.net/blog/column/9580461/103906020
---------------------------------------------------------------------------------------------------------------------------------