繁体   English   中英

如何获取列表<object[]>来自使用 Spring Jdbc 的查询</object[]>

[英]How to get List<Object[]> from a query using Spring Jdbc

我使用 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
}

如果你想要一个列表作为结果,你绝对应该质疑你想要实现的概念方法。 问问自己,您是否真的不能或不想提前知道您将收到哪些列,以及您将如何处理这些列的未知类型? 如果您有 static model 类与静态类型字段,整齐 map 到您的结果集,那么您的生活会更轻松; 如果你这样做,你甚至可以跳过 jdbc alltoghter,让 Spring Data 所有查询和结果集映射工作。

But if this really is not an option for you, then at least don't map your result rows to an Object array, but rather to simple JSON objector a Map, unless you don't care much about what value belonged to what column.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM