package com.example.cuixiaowei.demo;

import com.alibaba.fastjson.JSONObject;
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;

/**
 * <p>
 *
 * </p>
 *
 * @author wei.liu
 * @date 2020/1/2
 */
public class MyTypeHandle extends BaseTypeHandler<JSONObject>{

	@Override
	public JSONObject getNullableResult(ResultSet rs, String columnsName) throws SQLException {
		String infoJsonString= rs.getString(columnsName);
		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;
	}

	

}
