@Test// @SuppressWarnings("unchecked")publicvoidtest_query_data_from_userTable()throws Exception {
String sql_query_userTable ="select id, name from user order by id asc";final List<User> list =newArrayList<User>();
jdbcTemplate.query(sql_query_userTable,newRowMapper(){public Object mapRow(ResultSet rs,int rowNum)throws SQLException {
System.out.println("current row:"+ rs.getRow()+", "+ rowNum);/** 必須重置遊標到第一行之前 */
rs.beforeFirst();while(rs.next()){int id = rs.getInt(1);
String name = rs.getString(2);
list.add(newUser(id, name));}return null;}});
System.out.println(list.size());for(User u : list){
System.out.println(u);}}
執行結果如下
# 可見當前行號爲 1,即當前遊標在第 2 行之前,所以第 1 行始終不能被遍歷到
current row:1, 0
# 重置遊標(beforeFirst())後,數據正確打印
5
User [id=13, name=李斯]
User [id=14, name=張麗]
User [id=15, name=劉晶]
User [id=16, name=悟空]
User [id=17, name=Micheal 劉]