2017-03-05 46 views
1

我想從Oracle SQL中的存儲過程檢索對象列表。你可以知道我怎麼能從下面的代碼中獲得一個Arraylist?從Oracle存儲過程檢索數組列表 - Java

ArrayList<String> strings = new ArrayList<>(); 
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(dataSource).withProcedureName("P_ROUTES"); 
SqlParameterSource in = new MapSqlParameterSource() 
    .addValue("V_FIXED_INT", period) 
    .addValue("V_CARRIER", carrier) 
    .addValue("V_DATE_RANGE_START", dateRangeStart) 
    .addValue("V_DATE_RANGE_END", dateRangeEnd); 
Map<String, Object> out = jdbcCall.execute(in); 
ArrayList obj = (ArrayList) out.get("RET_CURSOR"); 
Map<String, Object> map = (Map<String, Object>) obj.get(0); 

在地圖對象中,我列出了鍵值對。下面 檢查圖像: enter image description here

回答

0

我不知道這是最好的解決方案,但它爲我工作。我會盡力找到更好的東西。如果您有任何其他建議,請放心!

Map<String, Object> out = jdbcCall.execute(in); 
ArrayList obj = (ArrayList) out.get("RET_CURSOR"); 
logger.info("Length of retrieved routes from database = " + obj.size()); 
for (Object o : obj) { 
    Map<String, Object> map = (Map<String, Object>) o; 
    for (Map.Entry<String, Object> entry : map.entrySet()) 
     routes.add(entry.getValue().toString()); 
}