如何在 jdbcTemplate 对象中使用 select WHERE 子句?

How to use select WHERE clause in jdbcTemplateObject?

我需要使用这样的查询:

"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

我在数据库中有不止一个具有相同 id_team 的对象,所以我明白为什么会抛出异常,但我需要一些解决方案来从数据库中获取所有记录。

我想过在这样的方法中使用它,但我不知道如何使用参数"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;
}

有什么想法吗?

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

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

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