0

如何使用 JdbcTemplate.query()/queryForList() 使用 namedParameter 运行查询并将结果集存储到“用户”列表中?

用户等级:

public class User {

    String name = null;
    String id = null;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return name;
    }
    public void setId(String id) {
        this.id = id;
    }
}

询问:

SELECT name, id FROM USERS where email=:email

我正在寻找类似的东西:

ArrayList<User> userList = jdbcTemplate.query(sql_query, 
                                              ...some_mapper..., etc);
4

1 回答 1

3

似乎问题的答案在互联网上的一个地方不可用。这是我发现的:

要将结果集添加到 aList<>中,我们可以使用以下NamedParameterJdbcTemplate.query()函数:

NamedParameterJdbcTemplate jdbcTemplate;

ArrayList<User> usersSearchResult = (ArrayList<User>) jdbcTemplate.query(
  USER_LIST_TP_query,
  namedParameters,
  new RowMapperResultSetExtractor<User>(new UserRowMapper(), 20));

我们还必须定义一个自定义RowMapperResultSetExtractor,以便 JDBC 可以了解如何将结果集中的每一行转换为 type User

private class UserRowMapper implements RowMapper<User> {

  public User mapRow(ResultSet rs, int rowNum) throws SQLException {
    User user = new User();

    user.setId(rs.getString("ID"));
    user.setName(rs.getString("NAME"));

    return user;
  }
}
于 2012-09-11T07:53:21.497 回答