当前位置: 首页 > 知识库问答 >
问题:

如何通过ID从数据库中获取记录?

欧阳声
2023-03-14

我得到了这段代码,但我认为这是不好的方法,如果有像100K的结果,它会返回100K的新用户怎么办?对于ResultsetExtractor,我是否可以使用其他方法,但我不太确定如何实现。另外,是否应该使用try catch块?

   public Optional<Person> getPerson(int id) {
        String sql = "SELECT id, name FROM people WHERE id = ?";
        List<Person> people = jdbcTemplate.query(sql, (result, index) -> {
            return new Person(
                    result.getInt("id"),
                    result.getString("name")
            );
        }, id);

        return people.stream().findFirst();
    }

共有1个答案

申阳伯
2023-03-14

在一个正确的设计中,id字段应该对每个人都是唯一的,所以这段代码应该只能找到一个人。如果id字段不是唯一的,那么它不是一个好的设计,但您编写的代码是正确的。您不需要try-catch,因为您使用列表来存储结果,所以即使超过1个结果,也不会产生异常。但这也没有意义,因为最终该方法只返回1个人(people.stream.findFirst())。

 类似资料:
  • 问题内容: 我想按用户ID显示数据库中的记录。这意味着工作人员必须输入工作人员ID和密码并提出新项目的请求,该请求将保存在数据库中。 该请求工作正常,但是在request.php页面之后,我想显示该工作人员在receive.php中订购的项目。我该怎么办?这是定义表的SQL: 这是receive.php的PHP代码: 我真的希望有人可以检查我的代码。提前致谢。 问题答案: 您可以通过设置会话来做到

  • main.java Controller/Controller.java 模型/ConnectDB.java 查看/fxmlSample.fxml 错误: 错误:(64,9)Java:类Sample.Controller.Controller中的method initData无法应用于给定类型;必需:javafx.event.actionevent找到:没有参数原因:实际和正式参数列表的长度不同

  • 问题内容: 有没有一种方法可以通过Hibernate 3.2 API获得一些基础数据库版本的信息?我在这里和javadoc中都找不到相关的位。 问题答案: 获取数据库引擎的版本是特定于实现的。这意味着没有获取版本的共享方法,因此Hibernate不能真正提供API,因为它没有绑定到任何特定的RDBMS。例如,以下是通过一些著名的RDBMS使用SELECT语句获取版本的几种不同方法: Oracle

  • 我创建了一个名为的类来从firebase数据库中获取所有用户数据。下面是我用来获取firebase数据(用户名)的方法。 而firebase链接也没有问题。它还提供了用户名。 当我用一些虚拟的预定义字符串数据替换username时,这段代码就可以工作了。但是当我添加用户名时,它会给我以下错误。

  • 问题内容: 这是我的类,用于从数据库中获取数据 这是我的文件: 当我运行该程序时,出现异常后,请帮助我如何解决它。我是Hibernate的新手,尝试学习但被卡住了。 虽然我能够将数据存储在数据库中,但我有2个用于第一和第二类的数据获取数据,但在获取数据时遇到了问题PLZ帮助。 问题答案: 让我引述一下: 据我所知,您正在使用表名。 所以应该是这样的:

  • 问题内容: 我的页面上有一个通过URL调用spring控制器的页面。 现在,控制器看起来像 我发送的数据使用模式,并试图访问它的,但它显示为空白。 有什么方法可以在查看页面上接收该数据? 问题答案: 您必须为Spring Ajax调用示例添加@ResponseBody批注