网站首页 > java教程 正文
之前业务开发时,有一个字段接收的数据是Json格式的,并且需要以Json形式入库:
数据库中是这样存储的,这里实际是一个Json数组。
[
{
"label": "result1",
"name": "较好",
"readonly": false
},
{
"label": "result2",
"name": "一般",
"readonly": false
},
{
"label": "result3",
"name": "较差",
"readonly": false
},
{
"label": "result4",
"name": "极差",
"readonly": false
}
]
如果这个数据你要存取,你会怎么做?存入时,前端直接传Json格式的数据给你。取出时,你可能会再将Json数据转成List,以便做其他的操作。
但是在面向对象的思想中,这个Json数组中的每个元素就是一个对象,我们可不可以在代码层中以List的形式存,然后以List的形式取出,中间的Json转换有程序自动去做,不需要开发去手动转。
当然有实现的方法,我们来看效果:
我们在实体类中的这个字段写成Lis形式的,在上面添加@ColumnType注解。这个注解用来实现List与Json之间的自动互转。然后需要在Mapper.xml文件中配置:
<result column="survey_conclusion_options" property="surveyConclusionOptions" typeHandler="com.xxx.SurveyConclusionTemplateTypeHandler" />
我们在这个字段添加typeHandler。
这样我们下代码存数据的时候就是添加List而不是Json了。
查看一下数据库,已经自动转成Json了:
我们取出时,只需要直接查询,不需要做别的处理,返回的就是List了。
是不是存取很方便。
现在我们来看看字段注解中SurveyConclusionTemplateTypeHandler这个转换类。
这里用到了JsonTypeHandler,并且指定了实体类。
我们来看看JsonTypeHandler。
主要是做Json的处理。完整代码可以上网自行下载。
好了这篇文章就到这里啦,希望对大家有帮助。
猜你喜欢
- 2024-12-05 5千字的SpringMVC总结,我觉得你会需要
- 2024-12-05 推荐 10个 NB的 IDEA 插件,开发效率至少提升一倍
- 2024-12-05 SpringBoot系列——Jackson序列化
- 2024-12-05 Java 中如果不实现序列 Serializable 的话,能够进行网络传输么?
- 2024-12-05 Jackson忽略未知的JSON属性
- 2024-12-05 Delphi基础教程图文版之JSON
- 2024-12-05 泛型的类型擦除后,fastjson反序列化时如何还原?
- 2024-12-05 Java单元测试技巧之JSON序列化
- 2024-12-05 基础篇-SpringBoot默认Json框架Jackson解析
- 2024-12-05 java中常用的22种数据类型转换,超详细!
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)