如何根据JDBCType获取java类对象

时间:2018-06-09 10:10:16

标签: java jdbc metadata

我正在尝试通过JDBC实现从一种数据库类型到另一种数据库类型的数据传输。

使用connection.getMetaData().getColumnType()我可以获得列的JDBCType。

如何使用它来让java Class对象能够使用resultSet.getObject(i, XXX.class)

当然我可以做这样的事情https://stackoverflow.com/a/5253901/7849631

是否有任何库已经实现了这个accoridng数据库供应商?或者也许有特殊的结果集在某处浮动?

这是一个了解我的问题的简单示例:

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

解决此问题

0 个答案:

没有答案