package com.nq.utils; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.MappedJdbcTypes; import org.apache.ibatis.type.MappedTypes; import org.apache.ibatis.type.TypeHandler; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @MappedJdbcTypes(JdbcType.VARCHAR) @MappedTypes({Map.class}) public class MapTypeHandler implements TypeHandler> { @Override public void setParameter(PreparedStatement preparedStatement, int i, Map maps, JdbcType jdbcType) throws SQLException { return; } @Override public Map getResult(ResultSet resultSet, String columnName) throws SQLException { if (resultSet.getString(columnName).replace(" ","").equals("")||resultSet.getString(columnName)==null){ return null; } List list = Arrays.asList(resultSet.getString(columnName).split(";")); Map mappingMap = new HashMap<>(); for (String s : list) { List items =Arrays.asList(s.split("-")); mappingMap.put(items.get(0),items.get(1)); } return mappingMap; } @Override public Map getResult(ResultSet resultSet, int i) throws SQLException { if (resultSet.getString(i).equals("")||resultSet.getString(i)==null){ return null; } List list = Arrays.asList(resultSet.getString(i).split(";")); Map mappingMap = new HashMap<>(); for (String s : list) { List items =Arrays.asList(s.split("-")); mappingMap.put(items.get(0),items.get(1)); } return mappingMap; } @Override public Map getResult(CallableStatement callableStatement, int i) throws SQLException { if (callableStatement.getString(i).equals("")||callableStatement.getString(i)==null){ return null; } List list = Arrays.asList(callableStatement.getString(i).split(";")); Map mappingMap = new HashMap<>(); for (String s : list) { List items =Arrays.asList(s.split("-")); mappingMap.put(items.get(0),items.get(1)); } return mappingMap; } }