package main.java.com.cesgroup.mybatis;

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;

public class TypeHandle extends BaseTypeHandler<JSONObject>{

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


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

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


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

	

}