簡體   English   中英

需要將結果集轉換為某些數據結構

[英]Need to convert a Result Set to some data structure

我有一個像這樣的java.sql.ResultSet:

=============================
| colA | ColB | ColC | ColD |
=============================
|   1  |   1  |   1  |   1  |
|   1  |   1  |   1  |   2  |
|   1  |   1  |   2  |   3  |
|   1  |   1  |   2  |   4  |
|   1  |   2  |   3  |   5  |
|   1  |   2  |   4  |   6  |
|   1  |   2  |   4  |   7  |
|   1  |   2  |   4  |   8  |
|   1  |   3  |   5  |   9  |
|   1  |   3  |   6  |  10  |
=============================

第一列將始終具有單個值。 最后一列將始終是唯一的。

我需要一個實現,我想在ColD中檢索與ColB或ColC或ColA中的特定項目相對應的所有項目。

例如,如果我請求ColD中ColB中值為2的所有項目,我應該得到[5,6,7,8](作為列表或數組)。

我想知道樹實現是否是解決此問題的正確方法。

最好的實現方式是什么? 提前致謝。

Select colD from tableName where colB='2';

以上查詢不夠嗎?

更新資料

如果您需要在Java中完成此操作,則:

ResultSet rs=getAllDataInResultSet();//this method will return from stored procedure
List<int> resultList=new ArrayList<>();
while(rs.next()){
      int  colB=rs.getInt(2);
      if(colB==2){
       resultList.add(rs.getInt(4));
      }
}
logger.debug(resultList); //logging the final Result list

輸出:

[5,6,7,8]

這只是一個簡單的技巧,我將擁有一個HashMap,其keyscolumn4 ,其值作為column1 column2 column 3 (以空格分隔)。

每當用戶要求特定列的列值時,我都會進行相應匹配並將keys給他。

HashMap hm = new HashMap();
String query = "select * from emp;";
ResultSet rs = stmt.executeQuery(query);

while(rs.next())
{
    hm.put(rs.getString(4), rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3));
}

int fromCol = 2;
int colVal = 4;
List arr = new ArrayList();
Iterator it = hm.entrySet().iterator();

while (it.hasNext()) 
{
      Map.Entry pair = (Map.Entry)it.next();
      String key = pair.getKey().toString();
      String value = pair.getValue().toString();
      String []tokens = value.split(" ");

      if(tokens[fromCol - 1] .equals( colVal+""))
                arr.add(key);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM