`
soleegn
  • 浏览: 148940 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

从Hibernate范型DAO设计打造的自用DAO

阅读更多

几天前拜读了rainlife大哥哥的文章:

www.iteye.com/topic/69293

于是乎自行改造了项目中的原有抽象结构:

范型DAO将所有DAO的CRUD方法使用范型抽象到此层面。

IGenericDAO.java 代码
  1. public interface IGenericDAO<t></t> {   
  2.     public List<t></t> find(String sql) throws NullSqlStringException, 
  3. UnformatSelectStringException,AccessDataException;   
  4.   
  5.     public T save(T t) throws NullPointerException,AccessDataException;   
  6.   
  7.     public int deleteById(String id) throws AccessDataException;   
  8.   
  9.     public T update(T t) throws NullPointerException,AccessDataException;   
  10.   
  11.     public T getById(String id) throws AccessDataException;   
  12. }  

此DAO层接口主要处理针对某一PO的特殊操作的方法。

ISysUserDao.java 代码
  1. public interface ISysUserDao<sysuser></sysuser> extends IGenericDAO<sysuser></sysuser> {   
  2.   
  3.    public void initializeRoles(SysUser user) throws NullPointerException;   
  4.   
  5.    public void initializeOrganization(SysUser user) throws NullPointerException;   
  6.   
  7.    public void initializeHeadShip(SysUser user) throws NullPointerException;   
  8.   
  9.    public void initializePosition(SysUser user) throws NullPointerException;   
  10.   
  11.    public void initializeTitle(SysUser user) throws NullPointerException;   
  12.   
  13.    public void initializeWorkGroups(SysUser user) throws NullPointerException;   
  14. }  

其实,范型的真实类型已经在这一层上体现了,我们使用范型主要还是为了减少在此层接口中大量出现的相同的CRUD的方法的定义。

分享到:
评论
3 楼 bbiao 2007-06-21  
你把代码抄错了,范型是不可以这么定义的....

这种模式我也用过,Hibernate上给的参考是

public interface GenericDAO<T, ID extends Serializable> {

    T findById(ID id, boolean lock);

    List<T> findAll();

    List<T> findByExample(T exampleInstance);

    T makePersistent(T entity);

    void makeTransient(T entity);
}

2 楼 soleegn 2007-04-17  
http://www.hibernate.org/328.html里面提到的。
1 楼 xly_971223 2007-04-17  
这是hibernate给提供的接口吗 请问是那个版本?
hibernate3.1之前的好像没支持范型

相关推荐

    范型程序设计与 STL.pdf

    《范型程序设计与 STL》是一本深入探讨C++编程中的关键概念和技术的书籍,主要聚焦于范型(Generic Programming)和标准模板库(Standard Template Library,简称STL)。范型编程是一种强大的软件开发方法,它允许...

    Hibernate_范型_级联

    【标题】:Hibernate_范型_级联 在Java编程中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发人员将数据库操作转换为面向对象的方式,从而简化了数据库应用的开发。范型(Generics)是Java 5引入的一...

    C++多范型设计.pdf

    C++多范型设计.pdfC++多范型设计.pdfC++多范型设计.pdf

    C++多范型设计

    《C++多范型设计》是一本深入探讨C++编程语言中模板技术的专著,由知名软件工程师James O. Coplien撰写,并由鄢爱兰、周辉等翻译成中文版,ISBN号为9787508318240。这本书的核心主题是C++中的泛型编程,它是C++编程...

    C++多范型设计 作者:[美]James O.Coplien

    本书详细地介绍了从“应用领域”到“方案领域”的C++设计实现方法,以及开发者在设计思考和设计实践过程中需要用到的记法、图表和设计模型。在读完这本书以后,读者将会了解如何根据应用领域的共同性和差异性分析...

    C++ 设计新思维:范型编程与设计模式之应用.pdf

    C++ 设计新思维 范型编程与设计模式之应用 pdf

    C++ 多范型设计

    C++ 多范型设计

    c++ 多范型设计

    c++ 多范型设计........

    c++多范型设计

    综上所述,“C++多范型设计”涵盖了从基础的函数和运算符重载到复杂的模板元编程等多个方面,是理解C++高级特性并能写出高效、可复用代码的关键。通过深入学习和实践,开发者可以充分利用C++的多范型能力,构建出...

    C++ 设计新思维:范型编程与设计模式之应用

    《C++ 设计新思维:范型编程与设计模式之应用》是一本深入探讨C++编程技巧和设计理念的专业书籍,特别关注了范型编程和设计模式在实际开发中的应用。这本书旨在帮助读者提升C++编程的灵活性、可重用性和效率,通过...

    C++ 设计新思维:范型编程与设计模式之应用(中文PDF)

    这本书讲解了大量的编写模板库的技巧,其核心设计思想是基于Policy来构建模板库。并且通过运用这些模板技术(例如元编程等),实现了多个设计模式的代码框架的自动生成,书不厚,正文内容不过300页,但是书中没有...

    C++多范型设计(pdg)

    C++多范型设计是C++编程语言中的一个重要概念,它允许程序员在不指定具体类型的情况下编写代码,从而实现代码的通用性和复用性。这种设计模式极大地提升了软件的灵活性和可扩展性,使得程序能够适应不同的数据类型,...

    C 多范型程序设计 PDF 教程.rar

    C 多范型程序设计 PDF 教程,内容方面主要介绍了C 从应用领域到方案领域的设计实现方法、以及开发者在设计思考和设计实践过程中需要用到的记法、图表和设计模型。通过对本书的阅读,您将会了解如何根据应用领域的...

Global site tag (gtag.js) - Google Analytics