【发布时间】:2010-01-29 07:14:56
【问题描述】:
如果我删除实体 bean(查找器方法)并引入 DAO 层,是否会提高性能。我想这样做主要是为了从数据库中读取数据。我的项目中有一个流程,它在流程中有大约 15 个实体 bean 查找器调用,所以如果我删除实体 bean 或引入一个 DAO 并保持实体 bean 保持原样,性能会有显着提高吗?我正在使用 EJB 2.1。
【问题讨论】:
标签: java jdbc dao entity-bean
如果我删除实体 bean(查找器方法)并引入 DAO 层,是否会提高性能。我想这样做主要是为了从数据库中读取数据。我的项目中有一个流程,它在流程中有大约 15 个实体 bean 查找器调用,所以如果我删除实体 bean 或引入一个 DAO 并保持实体 bean 保持原样,性能会有显着提高吗?我正在使用 EJB 2.1。
【问题讨论】:
标签: java jdbc dao entity-bean
使用实体 Bean 查找器检索数据会加载实体的所有属性,即使您可能只需要其中一个属性的值来完成手头的任务。因此,确实,EJB finders 方法有开销,在检索大型数据集时尤其如此(更不用说当您调用其中的 15 个时)。
所以,要检索大型只读数据集,使用 JDBC API 直接从 Session Bean(我猜你有一个 Session Bean 门面)与数据库对话可能确实更好.如果我没记错的话,这种模式被称为Fast Lane Reader。
请记住,这种模式的实现会牺牲数据一致性来提高性能,因为在原始 JDBC 级别执行的查询不会“看到”对 Enterprise Bean 表示的业务信息所做的未决更改。
【讨论】: