【发布时间】:2021-11-27 09:45:27
【问题描述】:
我得到了这段代码,但我认为这是不好的方法,如果有 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();
}
【问题讨论】:
-
它不会返回您拥有的 100k 人
WHERE id = ?它只会返回 1 个 ID id 应该对每个人都是唯一的 -
去掉
spring-boot标签,没有什么特殊的技术可以最快获得100k记录。如果您想以最快的速度搜索数据,可以使用binary-search -
@FaeemazazBhanej,我不希望获得 10 万条记录,我的问题是,我的代码是否最适合通过 GET 请求按 ID 获取用户,我收到反馈说我的代码不好,并且我应该使用
ResultSetExtractor而不是行映射器。我想听听人们在这里的想法 -
我认为
RowMapper是在spring jdbc中提取数据的最佳解决方案