好的网站设计机构,开发区招聘信息最新招聘,宝塔面板建设二级域名网站访问不了,视觉比较好看的网站文章目录 背景实现方式1. 直接以 Json 对象保存到数据库2. 以 String 类型保存到数据库 背景
项目过程中可能需要保存 Json 对象到数据库中。
实现方式 有两种实现方式#xff0c;一种是直接保存 Json 对象到数据库#xff0c;这种方式在创建实体类以及编写 Mapper XML 脚本… 文章目录 背景实现方式1. 直接以 Json 对象保存到数据库2. 以 String 类型保存到数据库 背景
项目过程中可能需要保存 Json 对象到数据库中。
实现方式 有两种实现方式一种是直接保存 Json 对象到数据库这种方式在创建实体类以及编写 Mapper XML 脚本时需要对 Json 对象做格式转换另一种是直接以字符串保存取用时使用 JSONObject 解析为 Json 对象。 1. 直接以 Json 对象保存到数据库
创建实体类时类上加 TableName 注解autoResultMap 参数设为 true;要保存为 Json 格式的字段设置为 JSONObject 类型添加 TableField 注解typeHandler 参数设置为 JacksonTypeHandler.class。
如下
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;TableName(value query_condition, autoResultMaptrue)
public class QueryConditionDAO {TableField(value queryCondition, typeHandler JacksonTypeHandler.class)private JSONObject queryCondition;}然后在编写 Mapper XML 脚本时insert 和 update 语句中需要对 Json 属性的字段设置 typeHandler 和 jdbcType如下 update idupdateQueryConditionupdate ${tableName}set query_condition#{queryCondition, jdbcTypeOTHER, typeHandlercom.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}where id#{id}/update2. 以 String 类型保存到数据库
以字符串类型保存很简单如下
public class QueryConditionDAO {private String queryCondition;}在查询数据时通过 JSONObject.parseObject() 方法将字符串解析为 JSONObject 类型即可。
JSONObject queryCondition JSONObject.parseObject(queryConditionString)小贴士 通常要保存一个 Json 字符串的话一般都是比较大的数据CHAR 和 VARCHAR 类型是不够的而需要用 TEXT 类型来存储。要根据具体的数据量的大小决定使用 TEXT 还是 MEDIUMTEXT 或者是 LONGTEXT