mysql的josn类型映射到java是String

11 篇文章 0 订阅

mysql有json类型,java通过String接收;

1.数据库查询显示:

在这里插入图片描述

2. java代码测试

    public static void main(String[] args) {
        // LinkedHashMap保证遍历的时候是存储顺序;
        Map<String, Integer> soldierNum = new LinkedHashMap<>();
        soldierNum.put("18-40岁", 77);
        soldierNum.put("41-65岁", 130);
        soldierNum.put("65岁以上", 146);
        String string = soldierNum.toString();
        System.out.println(string);

        // 遍历集合
        Set<Map.Entry<String, Integer>> entries = soldierNum.entrySet();
        for (Map.Entry<String, Integer> entry : entries) {
            System.out.println("key= " + entry.getKey() + " and value= "
                    + entry.getValue());
        }
        // map -> json
        String s = JSON.toJSONString(soldierNum);
        System.out.println(s);

    }

3.java对应数据库实体类

public class ExcelElement implements Serializable {
    private Long id;

    // TODO 记得自动将Sting -> map
    @Excel(name = "军人数量")
    private String soldierNum;

    private String orgRelationship;

    private Map<String, Object> soldierNumMap = new LinkedHashMap<>();

    private Map<String, Object> orgRelationshipMap = new LinkedHashMap<>();

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getSoldierNum() {
        return soldierNum;
    }

    public void setSoldierNum(String soldierNum) {
        this.soldierNum = soldierNum;
        // mybatis映射java对象的时候调用set方法,所以在这里我直接解析了json -> map
        this.setSoldierNumMap(JSON.parseObject(this.soldierNum, LinkedHashMap.class, Feature.OrderedField));
    }
}

在这里插入图片描述
JSON.parseObject(this.soldierNum, LinkedHashMap.class, Feature.OrderedField)保证了读取数据顺序和数据库存储顺序一致

4.postman返回数据展示:

在这里插入图片描述

5.应该没写完,以后有机会补充;

最近坐多了腰疼,先下班了,大家注意身体哈!

### 回答1: MySQL JSON 字段对应 Java 中的类型是 com.mysql.cj.x.protobuf.MysqlxDatatypes.Scalar.String,其中需要使用 MySQL Connector/J 连接驱动来进行读写操作。 ### 回答2: MySQL在5.7版本中开始支持Json数据类型,可以存储Json对象、数组等非结构化数据。而在Java中,可以使用包括org.json、Google Gson、Jackson等多种库来处理Json数据。下面分别介绍MySQLJson类型Java对应类型MySQL中的Json类型: 在MySQL中,可以使用Json类型来存储非结构化数据。Json类型支持以下操作: 1. 通过 -> 操作符获取Json对象中指定的属性值。 2. 通过 ->> 操作符获取Json对象中指定的属性值,并将其转换成字符串。 3. 使用JSON_EXTRACT()函数从Json对象中获取指定的属性值。 4. 使用JSON_ARRAY()、JSON_OBJECT()等函数创建Json数组、对象等。 Java对应类型Java中有多种库可以用来处理Json数据,下面介绍常用的几种: 1. org.json:该库是Java官方提供的Json处理库,包含了Json的序列化、解析等功能。使用该库需要手动编写Json格式的字符串进行序列化和解析,使用起来相对比较麻烦。 2. Google Gson:该库可以将任意Java对象转换成Json格式的字符串,也可以将Json字符串转换成Java对象。使用该库可以方便地操作Json数据。 3. Jackson:该库可以对Json数据进行序列化和反序列化,可以将Json格式的字符串转换成Java对象,也可以将任意Java对象转换成Json格式的字符串。 综上所述,MySQL中的Json类型可以通过Java中的多种库来处理,不同的库具有不同的特点,使用者可以根据项目需求选择适合自己的库进行处理。 ### 回答3: MySQL 是一款关系型数据库,支持 JSON 数据类型以及基于 JSON 数据存储的索引,因此在 Java 语言中,我们需要将 MySQLJSON 数据类型映射成相应的 Java 类型。 在 MySQL 中将 JSON 存储为字符串,因此在 Java 中可以用 String 类型来表示 JSON 数据。同时,MySQL JSON 数据类型还可以转换为 JavaJSONObject 或 JSONArray 对象,具体方法可以使用 JSON 库(如 fastjson,jackson)来实现。 另外,对于基本数据类型(如 Integer、Double、Boolean 等)和日期类型(如 Date、Timestamp)的 JSON 数据,可以使用 Java 对应类型的对象来解析和操作。而对于复杂的 JSON 数据,需要使用 Java 中的自定义类来表示每个字段。 需要注意的是,由于 MySQL 中的 JSON 数据没有固定的结构,因此在解析 JSON 数据时需先读取 JSON 字符串,并使用 JSON 库对其进行解析和转换为 Java 对象。同时,在 Java 中对 JSON 数据进行修改,也需要将其转换回 JSON 字符串后才能写入到 MySQL 中保存。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值