mysql json类型--java List<String>类型匹配

一、String数组

1.mysql 字段类型为json

2.java实体类字段类型为List<String>

@ApiModelProperty(value = "后缀")
    @TableField(value = "postfix", typeHandler = JacksonTypeHandler.class)
    private List<String> postfix;

TableName注解要加autoResultMap

@TableName(value = "op_dataset_view_conf",autoResultMap = true)

3.xml 字段加typehandler

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhito.sjpt.common.database.mapper.op.DatasetViewConfMapper">
    <resultMap id="DatasetViewConf" type="com.zhito.sjpt.common.database.entity.op.DatasetViewConf">
        <id column="id" property="id"/>
        <result column="type" property="type"/>
        <result column="play_next" property="playNext"/>
        <result column="postfix" property="postfix" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
        <result column="replay" property="replay"/>
    </resultMap>
</mapper>

4.结果能查能插

 

 插

二 、换成对象类型

 和上面一样,把实体类字段的类型改成相应的对象类型即可

 一样能插能查

 三、对象数组类型

和上面一样,把实体类字段类型修改为

结果 能插能查

 

 

 

将一个 List<Map<String, String>> 类型的数据结构,其中包含键值对的字符串映射,存储到数据库中通常涉及几个步骤: 1. 数据模型设计:首先,你需要在数据库中定义一个适当的表结构来匹配这种数据结构。这可能是一个名为 `Commissions` 的表,其中包含一个字段,比如 `commission_records`,用来存储 JSON 形式的字符串,因为数据库中的大多数类型不适合直接存储 Map 对象。 2. 序列化:Map 对象是不可直接插入数据库的,所以你需要将其序列化为字符串。对于 Java,你可以使用 Gson 或者 Jackson 等库来完成 JSON 的转换。 ```java import com.google.gson.Gson; // 或者使用 Jackson import com.fasterxml.jackson.databind.ObjectMapper; ... List<Map<String, String>> commissions = ...; // 假设已经填充了数据 String jsonCommissions = new Gson().toJson(commissions); ``` 3. 插入数据:将序列化的 JSON 字符串插入到数据库表中。这里通常会使用 SQL 的 INSERT INTO 语句,如果是在关系型数据库如 MySQL、PostgreSQL 中,可能是这样的: ```sql INSERT INTO Commissions (commission_records) VALUES ('{...}'); ``` 如果你用的是支持 JSON 的非关系型数据库(如 MongoDB),则可以直接将 JSON 字符串插入到相应的文档中。 4. 避免性能问题:如果你的列表很大,一次性插入所有记录可能会导致性能下降。你可以考虑分批插入,或者使用事务来确保数据一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值