在我的 UserDao 中,我想返回一个用户列表。
我已经有一个 UserRowMapper
那implements RowMapper<User>
.
我该怎么做?
我试过了:
List rows = getJdbcTemplate().queryforList("select * from users");
for(Map row : rows) {
}
但不确定如何使用我的 UserRowMapper 填充用户对象并将其插入我的用户列表中。
顺便说一句,这是我应该使用的最佳通用列表吗:
List<User> users = new ArrayList<User>();
?
最佳答案
使用 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()
方法实际上多次重载,因此您通常可以找到至少一种适用于任何给定情况的风格。
关于java - 返回一个列表,我已经有一个rowmapper实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8966821/