mysql 数据库存 json 类型 实体类如何处理

现在遇见许多业务需求 需要在数据库存错json 数据类型 数据库 mysql 5.7.4 也支持这种类型

建表语句

CREATE TABLE `demo` (
  `id` int(15) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(255) DEFAULT NULL COMMENT '名称',
  `type` int(15) DEFAULT NULL COMMENT '类型  ',
  `properties` json DEFAULT NULL COMMENT '组件属性',
  `location_id` int(15) DEFAULT NULL COMMENT '部件ID',
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `last_modified` datetime DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;

对应的实体类

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="CockpitPart对象", description="")
@TableName(autoResultMap = true)
public class CockpitPart extends BaseEntity<CockpitPart> implements Serializable  {

    private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "名称")
    private String name;

    @ApiModelProperty(value = "类型 1。统计组件 2。视频组件 3.元素资源组件 ")
    private Integer type;

    @ApiModelProperty(value = "组件属性")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private JSONObject properties;

    @ApiModelProperty(value = "部件ID")
    private Integer locationId;


    @Override
    protected Serializable pkVal() {
        return null;
    }

}

注意:重点字段上加

@ApiModelProperty(value = "组件属性")
@TableField(typeHandler = JacksonTypeHandler.class)
private JSONObject properties;

@ApiModelProperty(value = "部件ID")
@TableField(typeHandler = JacksonTypeHandler.class)
private JSONArray partIds;

类上面一定得加上 这个 不然会查不出来值

@TableName(autoResultMap = true)

测试

@PutMapping("/saveOrUpdate")
@ApiOperation(value = "保存或修改",notes = "保存或修改")
public ApiResponse saveOrUpdate(@RequestBody @Valid CockpitPart cockpitPart){
  try {
    iCockpitPartService.saveOrUpdate(cockpitPart);
    return ApiResponse.success(cockpitPart);
  } catch (Exception e) {
    e.printStackTrace();
    return ApiResponse.error(e.toString());
  }
}

传参数

{
    "locationId":1,
    "name":"时间统计组件",
    "properties":{
      "elId":2158,
      "code":"1604388795943",
      "elName":"市级",
      "statId":1,
      "statName":"人员统计",
      "style":1
    	}, #统计组件
    "type":1
}
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 3 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐