簡體   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