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<Map<String,String>> {
|
@Override
|
public void setParameter(PreparedStatement preparedStatement, int i, Map<String, String> maps, JdbcType jdbcType) throws SQLException {
|
return;
|
}
|
|
@Override
|
public Map<String, String> getResult(ResultSet resultSet, String columnName) throws SQLException {
|
if (resultSet.getString(columnName).replace(" ","").equals("")||resultSet.getString(columnName)==null){
|
return null;
|
}
|
List<String> list = Arrays.asList(resultSet.getString(columnName).split(";"));
|
Map<String,String> mappingMap = new HashMap<>();
|
for (String s : list) {
|
List<String> items =Arrays.asList(s.split("-"));
|
mappingMap.put(items.get(0),items.get(1));
|
}
|
return mappingMap;
|
}
|
|
@Override
|
public Map<String, String> getResult(ResultSet resultSet, int i) throws SQLException {
|
if (resultSet.getString(i).equals("")||resultSet.getString(i)==null){
|
return null;
|
}
|
List<String> list = Arrays.asList(resultSet.getString(i).split(";"));
|
Map<String,String> mappingMap = new HashMap<>();
|
for (String s : list) {
|
List<String> items =Arrays.asList(s.split("-"));
|
mappingMap.put(items.get(0),items.get(1));
|
}
|
return mappingMap;
|
}
|
|
@Override
|
public Map<String, String> getResult(CallableStatement callableStatement, int i) throws SQLException {
|
if (callableStatement.getString(i).equals("")||callableStatement.getString(i)==null){
|
return null;
|
}
|
List<String> list = Arrays.asList(callableStatement.getString(i).split(";"));
|
Map<String,String> mappingMap = new HashMap<>();
|
for (String s : list) {
|
List<String> items =Arrays.asList(s.split("-"));
|
mappingMap.put(items.get(0),items.get(1));
|
}
|
return mappingMap;
|
}
|
}
|