SpringBoot+MyBatis操作Postgresql中Json数据类型
MyBatis中并没有原生json的jdbcType支持,只能通过自定义TypeHandler来实现转换
假设这是我要存入数据库的json串:
{
"createtime":"2020-08-06T03:57:08.382Z","dataid":"727d2094-f6b3-4eee-a39b-7544c04105fc","schemaid":"ec9ebd79-d74d-4e0f-b026-9653006940f2"}
格式化一下:
{
"createtime": "2020-08-06T03:57:08.382Z",
"dataid": "727d2094-f6b3-4eee-a39b-7544c04105fc",
"schemaid": "ec9ebd79-d74d-4e0f-b026-9653006940f2"
}
我希望的效果:
首先新建实体类做映射,data字段设置为JSONObject 类型
private Object dataid;
private Object schemaid;
private JSONObject data;
private Date createtime;
//省略getter setter方法
第二部新建ObjectJsonHandler类做自定义TypeHandler
/**
* @author Oct.Ca
* @version 1.0
* @date 2020/8/6 11:34
* postgres中json格式的字段,进行转换的自定义转换器,转换为实体类的JSONObject属性
* MappedTypes注解中的类代表此转换器可以自动转换为的java对象
*/
@MappedTypes(JSONObject.class)
public class ObjectJsonHandler extends BaseTypeHandler<JSONObject> {
//引入PGSQL提供的工具类PGobject
private static final PGobject jsonObject = new PGobject();
@Override