WEB开发网
开发学院软件开发Java 持久化模式,第 2 部分: 提高代码重用和改进性能 阅读

持久化模式,第 2 部分: 提高代码重用和改进性能

 2010-04-02 00:00:00 来源:WEB开发网   
核心提示: SalaryRate 类继承这些字段并添加一个 yearlyRate 字段,见清单 5: 清单 5. SalaryRate 类@Entity@DiscriminatorValue("Salary")publicclassSalaryPayRateextendsPayRate{

SalaryRate 类继承这些字段并添加一个 yearlyRate 字段,见清单 5:

清单 5. SalaryRate 类

@Entity 
@DiscriminatorValue("Salary") 
public class SalaryPayRate extends PayRate { 
  private double yearlyRate; 
  //... 
} 

高级的泛型 DAO

随着越来越多的应用程序使用泛型 DAO,您会在数据访问层中发现更多的通用功能。提取通用行为并把它们包含在泛型 DAO 中,让类的所有用户通过泛型 DAO 访问这些功能,这样就可以减少代码重复。

常见的两种通用操作是根据搜索参数执行查询和数据库级的分页。

查询

几乎所有持久化实体都需要某种查询功能。通常通过给对象中要搜索的一个或多个字段输入搜索文本(有时候支持通配符功能)来指定查询。一种查询方法是,创建持久化对象的一个实例,然后填充需要用搜索条件搜索的字段。 Hibernate 通过示例(example) 查询支持这种方式。

图 2 给出扩展的 BaseDao 接口,它支持按示例查询功能:

图 2. 扩展的 BaseDao 接口

在给出这个接口的实现之前,我们先考虑一下如何使用这样的 DAO。请考虑以下代码,这段代码演示了对某个持久化实体执行查询的过程:

Employee example = employeeDao.getNewInstance(); 
example.setLastName("Smith"); 
List<Employee> results = employeeDao.getByExample(example); 

在 Web 应用程序中,搜索参数可能是代表搜索表单的后端对象,而查询的结果会显示在用户界面上。清单 6 展示了使用 Hibernate 实现 getAllByExample() 方法的方式:

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:持久化 模式 部分

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接