//package cn.superdesk.uniorder.dao.typehandler;
//
//import com.alibaba.fastjson2.JSON;
//import org.apache.ibatis.type.BaseTypeHandler;
//import org.apache.ibatis.type.JdbcType;
//
//import java.sql.CallableStatement;
//import java.sql.PreparedStatement;
//import java.sql.ResultSet;
//import java.sql.SQLException;
//
///**
// * @Description: Java类作用描述
// * @Author: linjinyu
// * @CreateDate: 2020/11/9 下午5:43
// * @UpdateUser: linjinyu
// * @UpdateDate: 2020/11/9 下午5:43
// * @UpdateRemark: 修改内容
// * @Version: 1.0
// */
//public class JsonTypeHandler<T> extends BaseTypeHandler<T> {
//
//    private Class<T> type;
//
//    public JsonTypeHandler(Class<T> type) {
//        if (type == null) {
//            throw new IllegalArgumentException("Type argument cannot be null");
//        }
//        this.type = type;
//    }
//
//    @Override
//    public void setNonNullParameter(PreparedStatement ps, int i, Object parameter,
//                                    JdbcType jdbcType) throws SQLException {
//
//        ps.setString(i, JSON.toJSONString(parameter));
//    }
//
//    @Override
//    public T getNullableResult(ResultSet rs, String columnName)
//            throws SQLException {
//
//        return JSON.parseObject(rs.getString(columnName), type);
//    }
//
//    @Override
//    public T getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
//
//        return JSON.parseObject(rs.getString(columnIndex), type);
//    }
//
//    @Override
//    public T getNullableResult(CallableStatement cs, int columnIndex)
//            throws SQLException {
//
//        return JSON.parseObject(cs.getString(columnIndex), type);
//    }
//}