2012-08-13 63 views
1

我需要使用以下查詢。使用JdbcTemplate的queryForList方法

SELECT m.member_id, cardflag FROM member m, member_attribute ma WHERE m.member_number=:memberNumber AND m.ref_club_status IN ('A','S') AND m.member_id=ma.member_id 

member_id的數據類型是字節數組,那的cardflag是VARCHAR。

我需要在我的代碼中使用此查詢,並查看jdbctemplate文檔中的選項,queryForList似乎是最佳選擇。我一直在嘗試,但無法彌補如何將參數傳遞給我的查詢以及如何處理返回類型。

任何人都可以請幫忙嗎?

非常感謝。

回答

2

我的回答是

String sql = "SELECT m.member_id, searscc FROM member m, member_attribute ma " + 
      "WHERE m.member_number=:memberNumber AND m.ref_club_status IN ('A','S') AND m.member_id=ma.member_id"; 
String memberNumber = "John Doe";     //the argument value for the sql above 
JdbcTemplate jdbcTemplate = new JdbcTemplate();  //replace this line with your own code to get JdbcTemplate instance. 
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, new Object[]{memberNumber}) ; 
byte[] tempMemberIds = null; 
String tempSearscc = null; 
if ((rows != null) || (rows.size() > 0)) { 
    for (Map<String, Object> tempRow : rows) { 
     tempMemberIds = (byte[])(tempRow.get("member_id"));  //key is your search field in your sql 
     tempSearscc = (String)(tempRow.get("searscc")); 
     //do your own jobs 
    } 
} else { 
    //do something else 
} 

希望這是有用的。

+0

非常感謝@caoxudong。 但是在if條件下你是指'(rows!= null)'還是它('rows == null)'本身? – ramz 2012-08-13 10:08:43

+0

@ramz哦哦,這是一個錯字,我編輯了我的答案。非常感謝。 – caoxudong 2012-08-13 10:14:17

+0

我還發現查詢由於其中的命名參數':memberNumber'而引發異常。它通過將命名參數更改爲普通的'?' 再次感謝。工作正常。 – ramz 2012-08-13 14:35:21