Я пытаюсь осуществить передачу данных из одного типа БД в другой через JDBC.
С помощью connection.getMetaData().getColumnType()
я могу получить JDBCType столбца.
Как я могу использовать его, чтобы получить объект класса Java для возможности использования resultSet.getObject(i, XXX.class)
?
КонечноЯ могу сделать что-то вроде этого https://stackoverflow.com/a/5253901/7849631
Есть ли какая-либо библиотека уже реализует этот поставщик БД?Или, может быть, где-то есть специальный набор результатов?
Вот простой пример, чтобы понять мою проблему:
private List<Map<String, Object>> readDataFromResultSet(ResultSet resultSet, Map<String, JDBCType> columnNamesTypes) throws SQLException {
List<Map<String, Object>> dataToTransfer = new ArrayList<>();
while (resultSet.next()) {
Map<String, Object> value = new LinkedHashMap<>();
for (String columnName : columnNamesTypes.keySet()) {
final JDBCType type = columnNamesTypes.get(columnName);
value.put(columnName, resultSet.getObject(columnName, **convertJDBCTypeToClass**(type)));
}
dataToTransfer.add(value);
}
return dataToTransfer;
}
ОБНОВЛЕНИЕ: это было решено с помощью org.hibernate.type.descriptor.sql.JdbcTypeJavaClassMappings