Как получить объект класса Java в соответствии с JDBCType - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь осуществить передачу данных из одного типа БД в другой через 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...