MyBaties并不支持JSON类型格式的数据存入PostgreSQL,所以在这里要进一步学习
SpringBoot+MyBaties+PostgreSQL整合
创建注册JSON数据类型到MyBaties
创建一个类,继承MyBites提供的BaseTypeHandler,再通过PostgreSQL提供的PGobject 注册(可能所用名词不专业,甚至有错误,纯属个人理解)
package com.example.mgdbandpgdb.pgdb.handler;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedTypes;
import org.postgresql.util.PGobject;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
设置映射类型
@MappedTypes(Object.class)
public class JsonTypeHandler extends BaseTypeHandler
映射文件配置
向PostgreSQL中写入数据
INSERT INTO jsontable (
id,
msg,
json)
VALUES (
#{id, jdbcType=INTEGER},
#{msg, jdbcType=VARCHAR},
#{json, javaType=Object,jdbcType=OTHER,typeHandler=com.example.mgdbandpgdb.pgdb.handler.JsonTypeHandler})
从PostgreSQL查询普通数据
当前我涉及到的和MySQL的查询没差别,所以不描述了
从PostgreSQL的JSON列数据中查询数据
JSON数据示例
{"name":"AAA","sex":"women","age":22}
查询的映射
提示:带JSON数据时普通操作可用自动生成代码工具生成,再略作修改即可,在JSON数据中查找数据要我们自己写映射文件并且在Mapper类中加方法。
评论区