java - Entity Bean 查找方法 VS DAO?

标签 java jdbc dao entity-bean

如果我删除实体 bean(查找器方法)并引入 DAO 层,性能是否会有所提高。我想这样做主要是为了从数据库读取数据。我的项目中有一个流程,流程中有大约 15 个实体 bean 查找器调用,因此,如果我删除实体 bean 或引入 DAO 并保持实体 bean 不变,性能是否会有显着提高?我正在使用 EJB 2.1。

最佳答案

使用实体 Bean 查找器检索数据会加载实体的所有属性,即使您可能只需要其中一个属性的值来完成手头的任务。因此,事实上,EJB 查找器方法有开销,在检索大型数据集时尤其如此(更不用说当您调用其中 15 个数据集时)。

因此,要检索大型只读数据集,使用 JDBC API 直接从 Session Bean(我猜您有一个 Session Bean 外观)与数据库对话确实可能更好。此模式称为 Fast Lane Reader如果我没记错的话。

请记住,此模式的实现会牺牲数据一致性来提高性能,因为在原始 JDBC 级别执行的查询不会“看到”对 Enterprise Bean 表示的业务信息所做的挂起更改。

关于java - Entity Bean 查找方法 VS DAO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160462/

相关文章:

java - com.mysql.jdbc.exceptions.jdbc4.MysqlSyntaxErrorException :Access denied for user "@' local host' to database 'mysql'

java - org.hibernate.LazyInitializationException 关联集合

android - 从 Room DB 获取单个项目。从 View 模型调用函数

java - 在 jsp 的文本区域中打开一个 doc 文件?

由 MySQL 库引起的 Java 内存泄漏

java - 在 request.getParameter ("something"中获取 null )

jdbc - Sqoop导入驱动程序问题:无法加载驱动程序

java - dao层的多个方法

java - 比较器不会删除 TreeSet 中的数字重复项

java - 如何在 TestNG 中生成不同名称的测试?