如何在jdbcTemplateObject中使用select WHERE子句?

时间:2015-11-06 13:11:33

标签: jdbctemplate

我需要使用这样的查询:

"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的对象,所以我明白,为什么它会抛出异常,但我需要一些解决方案来从DB获取所有记录。

我想过在这样的方法中使用它,但我不知道如何使用参数“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 个答案:

答案 0 :(得分:1)

你是对的,你必须使用query。只需将参数传递给函数:

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

顺便说一下,您可以查看jdbcTemplate javadoc