package com.doumee.config.mybatis; 
 | 
  
 | 
import cn.hutool.json.JSONUtil; 
 | 
import com.alibaba.fastjson.JSONObject; 
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
import org.apache.ibatis.type.JdbcType; 
 | 
import org.apache.ibatis.type.TypeHandler; 
 | 
  
 | 
import java.sql.CallableStatement; 
 | 
import java.sql.PreparedStatement; 
 | 
import java.sql.ResultSet; 
 | 
import java.sql.SQLException; 
 | 
  
 | 
/** 
 | 
 * @author T14 
 | 
 */ 
 | 
public class JSONObjectHandler implements TypeHandler<JSONObject> { 
 | 
    @Override 
 | 
    public void setParameter(PreparedStatement preparedStatement, int i, JSONObject o, JdbcType jdbcType) throws SQLException { 
 | 
        preparedStatement.setString(i,toString()); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public JSONObject getResult(ResultSet resultSet, String s) throws SQLException { 
 | 
        String str = resultSet.getString(s); 
 | 
        if (StringUtils.isBlank(str)){ 
 | 
            return null; 
 | 
        } 
 | 
        if (!JSONUtil.isJsonObj(str)){ 
 | 
            throw new SQLException("解析数据格式有误"); 
 | 
        } 
 | 
        return (JSONObject)JSONObject.parse(str); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public JSONObject getResult(ResultSet resultSet, int i) throws SQLException { 
 | 
        String str = resultSet.getString(i); 
 | 
        if (StringUtils.isBlank(str)){ 
 | 
            return null; 
 | 
        } 
 | 
        if (!JSONUtil.isJsonObj(str)){ 
 | 
            throw new SQLException("解析数据格式有误"); 
 | 
        } 
 | 
        return (JSONObject)JSONObject.parse(str); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public JSONObject getResult(CallableStatement callableStatement, int i) throws SQLException { 
 | 
        String str = callableStatement.getString(i); 
 | 
        if (StringUtils.isBlank(str)){ 
 | 
            return null; 
 | 
        } 
 | 
        if (!JSONUtil.isJsonObj(str)){ 
 | 
            throw new SQLException("解析数据格式有误"); 
 | 
        } 
 | 
        return (JSONObject)JSONObject.parse(str); 
 | 
    } 
 | 
} 
 |