gpt4 book ai didi

java - 为什么在使用数据库时更喜欢 Java 8 Stream API 而不是直接的 hibernate/sql 查询

转载 作者:IT老高 更新时间:2023-10-28 20:48:24 26 4
gpt4 key购买 nike

最近在少数项目中看到很多代码使用流过滤对象,比如:

library.stream()
.map(book -> book.getAuthor())
.filter(author -> author.getAge() >= 50)
.map(Author::getSurname)
.map(String::toUpperCase)
.distinct()
.limit(15)
.collect(toList()));

使用它而不是直接对已经返回过滤结果的数据库进行 HQL/SQL 查询有什么好处。

第二种方法不是更快吗?

最佳答案

如果数据最初来自数据库,最好在数据库中进行过滤,而不是获取所有内容并在本地过滤。

首先,数据库管理系统擅长过滤,这是它们主要工作的一部分,因此针对它进行了优化。使用索引也可以加快过滤速度。

其次,获取和传输许多记录并将数据解码到对象中只是为了在进行本地过滤时丢弃大量它们是对带宽和计算资源的浪费。

关于java - 为什么在使用数据库时更喜欢 Java 8 Stream API 而不是直接的 hibernate/sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43304023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com