当前位置: 首页 > 面试题库 >

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

卢健
2023-03-14
问题内容

在我的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>();


问题答案:

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



 类似资料:
  • 数据库中的每一行都是这样的 现在我想这样返回上面的数据 我将Spring的JdbcTemplate与行映射器一起使用,但我只能得到所有行的列表。由于我无法在RowMapper中维护我的主映射(我可以在RowMapper类中有一个静态映射吗?但我不希望它是静态的,因为这是一个webservice,后续调用可能会出错。),我只能选择获取该行列表,然后使用逻辑创建所需的集合。 我开始了解,但我找不到如何

  • 如果我跑: 我会得到一张空名单。我猜它与名称空间有关,但我不知道如何修复它。

  • 问题内容: 我在Android中有一个客户端应用程序,用于将文件发送到服务器。服务器使用Apache Commons FileUpload API来解析表单数据值。 该发送该请求: 服务器代码: 问题就在这里。返回的列表为空,我无法获取表单数据值。 问题答案: 如果您已经(隐式)预先解析了请求正文,则此位置将为空。HTTP请求正文只能被读取/解析 一次 (因为客户端仅发送一次,并且不会多次发送)。

  • 我对Spring编程是新手。我正在用Reactor/Webflux项目测试反应式编程。 数据库注册通过POST工作得很好。 我的模型: 我的存储库 我的用户服务

  • 我是JOOQ新手,目前无法将连接查询映射到映射 这是我的代码: 假设我在订单中有1行,在订单项目文章中有2行。运行由(在.fetchGroups()之后)按预期返回我2行,所以我假设调用fetchGroups()也会用两个条目填充我的列表?! 我错过了什么? 谢谢 更新: 根据要求,类: 所以这只是JOOQ POJO类的扩展,用于与API客户机的JSON通信。。。

  • 我试图使用JPA findAll获取所有记录。如果我在终端中运行相同的查询,结果会得到一些行,但不是通过JPA。我在stackoverflow上尝试了其他答案,但都不起作用。我尝试添加公共getter和setter,尽管我假设这是通过注释完成的。 型号类别: 服务等级: 编辑:添加存储库代码: