1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package com.nuliji.tools.mybatis.handler;
- import org.apache.ibatis.type.BaseTypeHandler;
- import org.apache.ibatis.type.JdbcType;
- import org.apache.ibatis.type.MappedJdbcTypes;
- import org.apache.ibatis.type.MappedTypes;
- import java.sql.CallableStatement;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- @MappedTypes(int[].class)
- @MappedJdbcTypes(value = {JdbcType.VARCHAR}, includeNullJdbcType = true)
- public class IntegerArrayHandler extends BaseTypeHandler<int[]> {
- @Override
- public void setNonNullParameter(PreparedStatement ps, int i, int[] parameter, JdbcType jdbcType) throws SQLException {
- List<String> list = new ArrayList<>();
- for (Integer item : parameter) {
- list.add(String.valueOf(item));
- }
- ps.setString(i, String.join(",", list));
- }
- @Override
- public int[] getNullableResult(ResultSet rs, String columnName) throws SQLException {
- String str = rs.getString(columnName);
- if (rs.wasNull())
- return null;
- if (str.isEmpty()) return new int[0];
- return Arrays.stream(str.split(",")).mapToInt(Integer::valueOf).toArray();
- }
- @Override
- public int[] getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
- String str = rs.getString(columnIndex);
- if (rs.wasNull())
- return null;
- if (str.isEmpty()) return new int[0];
- return Arrays.stream(str.split(",")).mapToInt(Integer::valueOf).toArray();
- }
- @Override
- public int[] getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
- String str = cs.getString(columnIndex);
- if (cs.wasNull())
- return null;
- if (str.isEmpty()) return new int[0];
- return Arrays.stream(str.split(",")).mapToInt(Integer::valueOf).toArray();
- }
- }
|