in infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/resultset/ResultSetMapper.java [47:96]
public Object load(final ResultSet resultSet, final int columnIndex) throws SQLException {
Optional<DialectResultSetMapper> dialectResultSetMapper = DatabaseTypedSPILoader.findService(DialectResultSetMapper.class, databaseType);
ResultSetMetaData metaData = resultSet.getMetaData();
switch (metaData.getColumnType(columnIndex)) {
case Types.BOOLEAN:
return resultSet.getBoolean(columnIndex);
case Types.TINYINT:
case Types.SMALLINT:
return dialectResultSetMapper.isPresent() ? dialectResultSetMapper.get().getSmallintValue(resultSet, columnIndex) : Integer.valueOf(resultSet.getInt(columnIndex));
case Types.INTEGER:
if (metaData.isSigned(columnIndex)) {
return resultSet.getInt(columnIndex);
}
return resultSet.getLong(columnIndex);
case Types.BIGINT:
if (metaData.isSigned(columnIndex)) {
return resultSet.getLong(columnIndex);
}
BigDecimal bigDecimal = resultSet.getBigDecimal(columnIndex);
return null == bigDecimal ? null : bigDecimal.toBigInteger();
case Types.NUMERIC:
case Types.DECIMAL:
return resultSet.getBigDecimal(columnIndex);
case Types.FLOAT:
case Types.DOUBLE:
return resultSet.getDouble(columnIndex);
case Types.CHAR:
case Types.VARCHAR:
case Types.LONGVARCHAR:
return resultSet.getString(columnIndex);
case Types.DATE:
return dialectResultSetMapper.isPresent() ? dialectResultSetMapper.get().getDateValue(resultSet, columnIndex) : resultSet.getDate(columnIndex);
case Types.TIME:
return resultSet.getTime(columnIndex);
case Types.TIMESTAMP:
return resultSet.getTimestamp(columnIndex);
case Types.BLOB:
return resultSet.getBlob(columnIndex);
case Types.CLOB:
return resultSet.getClob(columnIndex);
case Types.BINARY:
case Types.VARBINARY:
case Types.LONGVARBINARY:
return resultSet.getBytes(columnIndex);
case Types.ARRAY:
return resultSet.getArray(columnIndex);
default:
return resultSet.getObject(columnIndex);
}
}