2015-11-06 73 views
0

我需要使用這樣的查詢:如何使用jdbcTemplateObject中的select WHERE子句?

"select * from Team_has_users where Teams_id_team = ?"; 

如果我把這個方法:

public Team_has_users listTeamMembers(int id_team) { 
    String SQL = "select * from Team_has_users where Teams_id_team = ?"; 
    Team_has_users members = jdbcTemplateObject.queryForObject(SQL, new Object[] { id_team }, 
      new Team_has_usersMapper()); 
    return members; 
} 

我得到異常:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.IncorrectResultSizeDataAccessException: Incorrect result size: expected 1, actual 2 

我有一個以上的對象中DB與相同的id_team,所以我明白,爲什麼它會拋出excepction,但我需要一些解決方案來從數據庫中獲取所有記錄。

我想過在像這樣的方法中使用它,但我不知道如何將它與參數「id_team」一起使用。

public List<Team_has_users> listTeamMembers(int id_team) { 
    String SQL = "select * from Team_has_users where Teams_id_team = ?"; 
    List<Team_has_users> members = jdbcTemplateObject.query(SQL, new Team_has_usersMapper()); 
    return members; 
} 

任何想法?

回答

1

你是對的,你必須使用query。只需將參數傳遞給函數:

List<Team_has_users> members = getJdbcTemplate().query(SQL, new Team_has_usersMapper(), id_team); 

順便說一下,您可以檢查jdbcTemplate javadoc