一尘不染

返回列表,我已经有一个rowmapper实现

java

在我的UserDao中,我想返回一个用户列表。

我已经有UserRowMapper那个了implements RowMapper<User>

我怎样才能做到这一点?

我试过了:

List rows = getJdbcTemplate().queryforList("select * from users");

for(Map row : rows) {

}

但是不确定如何使用UserRowMapper填充User对象并将其插入我的用户列表List中。

顺便说一句,这是我应该使用的最好的通用列表:

List<User> users = new ArrayList<User>();


阅读 179

收藏
2020-12-03

共1个答案

一尘不染

使用JdbcTemplate.query(String sql, RowMapper<T> rowMapper, Object... args),您可以为?占位符传递可变数量的值作为最后一个参数:

public List<User> findById(int userId)
{
    return getJdbcTemplate().query(
            "SELECT * FROM users WHERE user_id=?",
            new UserRowMapper(),
            userId
        );
}

或类似的东西:

public List<User> findByManyParams(int param1, int param2, String param3)
{
    return getJdbcTemplate().query(
            "SELECT * FROM users WHERE foo=? AND bar=? AND foobar=?",
            new UserRowMapper(),
            param1,
            param2,
            param3
        );
}

query()实际上,该方法已多次重载,因此通常可以找到至少一种在任何给定情况下都能满足您需要的口味。

2020-12-03