持久化模式,第 1 部分: 现代 ORM 工具的策略和最佳实践
2010-04-02 00:00:00 来源:WEB开发网核心提示: 有几种实现泛型 DAO 的方式,其中一些方式取决于您的环境,持久化模式,第 1 部分: 现代 ORM 工具的策略和最佳实践(5),这个示例使用依赖项注入风格,因此实现不需要为如何配置自身操心,也可以根据查询的实体的需要,从它派生出子类,而是假设在使用它之前它所需要的所有东西都已经注入了,其他一些
有几种实现泛型 DAO 的方式,其中一些方式取决于您的环境。这个示例使用依赖项注入风格,因此实现不需要为如何配置自身操心,而是假设在使用它之前它所需要的所有东西都已经注入了。其他一些方式不使用依赖项注入。依赖项注入方式的关键是,在查询数据时,要注入 DAO 将查询的实体的 Class 并定义泛型类型。
创建泛型 DAO 的第一步是定义它的一些通用操作。图 2 给出一个泛型 DAO 的接口:
图 2. 基 DAO 接口和实现
清单 4 给出这个泛型 DAO 的一些示例代码:
清单 4. 泛型 DAO 模式的示例代码
public interface BaseDao<B extends BaseEntity> {
B getById(Long id);
// ...other methods
}
public class BaseDaoHibernate<B extends BaseEntity>
implements BaseDao<B extends BaseEntity> {
private Class<B> queryClass;
public B getById(Long id) {
return (B) getSession().get(getQueryClass(), id);
}
// ...other methods
}
清单 4 中的方法构成了数据访问层的核心。可以直接使用这个泛型 DAO,也可以根据查询的实体的需要,从它派生出子类。可以通过一个服务直接使用这个泛型 DAO,比如清单 5 中的服务:
更多精彩
赞助商链接