美文网首页
SpringBoot中MyBatis处理JSONObject和J

SpringBoot中MyBatis处理JSONObject和J

作者: 潦倒神仙 | 来源:发表于2019-10-21 17:20 被阅读0次
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.7</version>
    </dependency>
    
    @MappedTypes(JSONArray.class)
    @MappedJdbcTypes(JdbcType.VARCHAR)
    public class ArrayJsonHandler extends BaseTypeHandler<JSONArray> {
        //设置非空参数
        @Override
        public void setNonNullParameter(PreparedStatement ps, int i, JSONArray parameter, JdbcType jdbcType) throws SQLException {
            ps.setString(i, String.valueOf(parameter.toJSONString()));
        }
        //根据列名,获取可以为空的结果
        @Override
        public JSONArray getNullableResult(ResultSet rs, String columnName) throws SQLException {
            String sqlJson = rs.getString(columnName);
            if (null != sqlJson){
                return JSONArray.parseArray(sqlJson);
            }
            return null;
        }
        //根据列索引,获取可以为空的结果
        @Override
        public JSONArray getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
            String sqlJson = rs.getString(columnIndex);
            if (null != sqlJson){
                return JSONArray.parseArray(sqlJson);
            }
            return null;
        }
     
        @Override
        public JSONArray getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
            String sqlJson = cs.getString(columnIndex);
            if (null != sqlJson){
                return JSONArray.parseArray(sqlJson);
            }
            return null;
        }
     
    }
    
    @MappedTypes(JSONObject.class)
    @MappedJdbcTypes(JdbcType.VARCHAR)
    public class ObjectJsonHandler extends BaseTypeHandler<JSONObject>{
     
        //设置非空参数
        @Override
        public void setNonNullParameter(PreparedStatement ps, int i, JSONObject parameter, JdbcType jdbcType) throws SQLException {
            ps.setString(i, String.valueOf(parameter.toJSONString()));
        }
        //根据列名,获取可以为空的结果
        @Override
        public JSONObject getNullableResult(ResultSet rs, String columnName) throws SQLException {
            String sqlJson = rs.getString(columnName);
            if (null != sqlJson){
                return JSONObject.parseObject(sqlJson);
            }
            return null;
        }
        //根据列索引,获取可以为空的结果
        @Override
        public JSONObject getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
            String sqlJson = rs.getString(columnIndex);
            if (null != sqlJson){
                return JSONObject.parseObject(sqlJson);
            }
            return null;
        }
     
        @Override
        public JSONObject getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
            String sqlJson = cs.getString(columnIndex);
            if (null != sqlJson){
                return JSONObject.parseObject(sqlJson);
            }
            return null;
        }
    }
    
    #配置mybaits自定义类型转换类所在的包
    mybatis.type-handlers-package=com.hl.handler
    

    原博文请查看https://blog.csdn.net/LiXiuu/article/details/88970255

    相关文章

      网友评论

          本文标题:SpringBoot中MyBatis处理JSONObject和J

          本文链接:https://www.haomeiwen.com/subject/ciztvctx.html