package com.cesgroup.mybatis2.handle;

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;

import com.alibaba.fastjson.JSONObject;

/**
 * 
 * @author kks
 * @date 2020/01/02
 */
public class MyTypeHandle extends BaseTypeHandler<JSONObject>{

    /**
     * str转json对象
     */
	@Override
	public JSONObject getNullableResult(ResultSet rs, String cloumName) throws SQLException {
		String infoJsonString= rs.getString(cloumName);
		JSONObject infObject=null;
		try {
			infObject = JSONObject.parseObject(infoJsonString);
		} catch (Exception e) {
			System.err.println("将json串转成json对象失败！");;
		}
		return infObject;
	}


	@Override
	public JSONObject getNullableResult(CallableStatement arg0, int arg1) throws SQLException {
		return null;
	}

	/**
	 * json对象转str
	 */
	@Override
	public void setNonNullParameter(PreparedStatement statement, int i, JSONObject infoObject, JdbcType jdbcType) throws SQLException {
		try {
			String userInfoString= JSONObject.toJSONString(infoObject);
			statement.setString(i, userInfoString);
		} catch (Exception e) {
			System.out.println("将对象转化为字符串失败！");
		}
		
	}

	@Override
	public JSONObject getNullableResult(ResultSet arg0, int arg1) throws SQLException {
		return null;
	}
}
