我使用Spring Jdbc进行查询。我需要从数据库中执行select,但是我不知道表中有多少列要从结果集中获取结果(例如,对于RowMapper
)。我想获取List<Object[]>
。可能吗?在不知道数据库中的列数的情况下如何获取数据?
如果手头有ResultSet
,则可以使用元数据查看结果:
ResultSetMetaData metaData = resultSet.getMetaData();
然后,您可以使用metaData.getColumnCount()
获取列数,并使用诸如此类的方法戳特定的数:
int count = metaData.getColumnCount();
for (int i = 1; i <= count; i++) { // yeah, sql indexes from 1
System.out.println(metaData.getColumnName(i));
System.out.println(metaData.isNullable(i));
//... see ResultSetMetadata JavaDoc for the rest
}