hibernate DAO类的封装范文

原创 2007年09月21日 15:39:00

/*
 * 文件名: IEntityDAO.java
 *
 * 创建日期: 2007-4-3
 *
 * Copyright(C) 2007, by xiaozhi.
 *
 * 原始作者: <a href="mailto:xiaozhi19820323@hotmail.com">xiaozhi</a>
 *
 */
package com.ultrapower;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.LockMode;
import org.hibernate.criterion.Criterion;

import com.ultrapower.utils.support.Page;
import com.ultrapower.utils.support.SearchCondition;


/**
 *  针对单个Entity对象的操作定义.
 *
 * @author <a href="mailto:xiaozhi19820323@hotmail.com">xiaozhi</a>
 *
 * @version $Revision$
 *
 * @since 2007-4-3
 */
public interface IEntityDAO
{
  /**
     *
     * 开启事务
     */
    public void begin();

    /**
     * 提交事务
     */
    public void commit();

    /**
     * 事务回滚
     */
    public void rollback();

    /**
     * 释放资源
     * 
     */
    public void release();

    /**
     * 刷新缓存
     *
     */
    public void flush() ;

   
    /**
     *  获得当前类的PK字段名
     * 
     * @param clazz 类对象
     * @return 获得的字段名
     */
    public String  getIdName(Class clazz) ;
   

    /**
  * 创建Criteria对象
  *
  * @param criterion
  *            可变条件列表,Restrictions生成的条件
  * @param clazz
  *            类对象
  * @return 创建的Criteria对象
  */
    public Criteria createCriteria(Criterion[] criterion,Class clazz) ;
   
    /**
     * 根据数据库锁在次加载这个对象
     *
     * @param object
     * @param mode
     *            数据锁默认情况都是 LockMode.UPGRADE
     * @throws PersistentException
     *             全局异常
     */
    public void refresh(Object object, LockMode mode) ;
   
 /**
  * 根据ID获取对象
  *
  * @param clazz
  *            被读取的数据模型
  * @param id
  *            可序列ID
  * @return 返回改对象或者NULL
  */
 public Object get(Class clazz,Serializable id) ;
 
 /**
  * 获取全部对象
  *
  * @param clazz 类对象
  * @return 获取的全部对象的List,List的size可能为0。
  */
 public List getAll(Class clazz) ;
 

 /**
  * 获取全部对象,并根据page返回当前页的List
  *
  * @param page
  *            分页信息对象
  * @param clazz
  *            被读取的数据模型
  * @return 符合条件的对象List,List的size可能为0
  */
 public List getAll(Page page,Class clazz) ;
 
 /**
  * 获取全部对象,并返回该对象的分页信息对象
  *
  * @param pageSize
  *            分页大小
  * @param clazz
  *            被读取的数据模型
  * @return 分页信息对象
  */
 public Page getAll(int pageSize,Class clazz) ;
 
 
 /**
     * 保存或者更新对象
     *
     * @param o 要保存或更新的对象
     */
    public void saveOrUpdate(Object o);
   
    /**
     * 删除对象
     *
     * @param o 要删除的对象
     */
    public void remove(Object o);
   
   
   /**
  * 根据ID删除对象
  *
  * @param id
  *            对象的Id
  * @param clazz
  *            被删除的数据模型
  */
    public void removeById(Serializable id,Class clazz);
   
    /**
  * 根据属性名和属性值查询对象
  *
  * @param searchCond
  *            查询条件
  * @param clazz
  *            要查询的数据模型
  * @return 符合条件的对象List,List的size可能为0。
  */
    public List findBy(SearchCondition searchCond,Class clazz) ;
   
    /**
  * 根据属性名和属性值查询不符合查询条件的对象
  *
  * @param searchCond
  *            查询条件
  * @param clazz
  *            要查询的数据模型
  * @return 找到的对象List,List的size可能为0。
  */
    public List findByNotLike(SearchCondition searchCond,Class clazz) ;
   
    /**
  * 根据属性名和属性值查询对象,并根据page返回当前页的List。
  *
  * @param searchCond
  *            查询条件
  * @param page
  *            分页对象
  * @param clazz
  *            要查询的数据模型
  * @return 符合条件的对象List,List的size可能为0。
  */
    public List findBy(SearchCondition searchCond,Page page,Class clazz) ;
   
    /**
  * 根据属性名和属性值查询对象,并返回该对象的分页信息对象
  *
  * @param searchCond
  *            查询条件
  * @param pageSize
  *            分页大小
  * @param clazz
  *            要查询的数据模型
  * @return 符合条件的对象List,List的size可能为0。
  */
    public Page findBy(SearchCondition searchCond,int pageSize,Class clazz) ;
   
    /**
  * 根据属性名和属性值以Like AnyWhere方式查询对象(模糊查询)
  *
  * @param searchCond
  *            查询条件
  * @param clazz
  *            要查询的数据模型
  * @return 符合条件的对象List,List的size可能为0。
  */
    public List finByLike(SearchCondition searchCond,Class clazz) ;
   
    /**
  * 根据属性名和属性值以Like AnyWhere方式查询对象(模糊查询) 并根据page返回当前页的List。
  *
  * @param searchCond
  *            查询条件
  * @param page
  *            分页对象
  * @param clazz
  *            要查询的数据模型
  * @return 符合条件的对象List,List的size可能为0
  */
    public List finByLike(SearchCondition searchCond,Page page,Class clazz) ;
   
    /**
  * 根据属性名和属性值以Like AnyWhere方式查询对象(模糊查询) 并返回该对象的分页信息对象。
  *
  * @param searchCond
  *            查询条件
  * @param pageSize
  *            分页对象
  * @param clazz
  *            要查询的数据模型
  * @return 符合条件的对象List,List的size可能为0
  */
    public Page finByLike(SearchCondition searchCond,int pageSize,Class clazz) ;
}
 感谢好朋友小智的帮助。

Hibernate封装通用数据操作基类DAO

文章来源:http://blog.163.com/fushahui_1988@126/blog/static/828799942010725105544740/ package com.ke...
  • buster2014
  • buster2014
  • 2015年06月23日 10:20
  • 715

hibernate4的dao层工具类

hibernate3.1起,之前与之后的版本,对hibernateDaoSupport方法的支持出现了变化...
  • TianXieZuoMaiKong
  • TianXieZuoMaiKong
  • 2017年02月23日 23:34
  • 1110

在Spring+Hibernate中提供的DAO封装

在Spring和Hibernate中,Spring提供了很多Hibernate的DAO封装。 ========================================JDBC操作 ...
  • Jassicr
  • Jassicr
  • 2013年05月31日 14:15
  • 1111

hibernate底层dao封装

最近公司有任务,用的是ssh框架,我看了下公司的dao的封装确实牛逼,所有我也参考他的dao进行了封装。废话少说先上代码。 package cn.com.wanhao.dao.impl.base; ...
  • haozhishang
  • haozhishang
  • 2016年11月25日 17:51
  • 2727

封装JPA的数据操作DAO类

对JPA的实体操作进行了简单的封装,降低了数据操作的难度,提高了开发的效率。里面可能会有少许hibernate的元素。 DAO.java /************************* ...
  • menghuannvxia
  • menghuannvxia
  • 2015年11月23日 21:05
  • 2285

hibernate4的dao基础工具类

因为hibernate4的事物处理已经完善的非常好,所以spring没有做hibernate4的事务支持(也就是spring的hibernateDaoSupport),所以hibernate4和之前版...
  • switch513
  • switch513
  • 2016年09月06日 11:57
  • 655

hibernate泛型Dao,让持久层简洁起来

【前言】hibernate作为持久层ORM技术,它对JDBC进行非常轻量级对象封装,使得我们可以随心所欲的使用面向对象的思想来操作数据库。同时,作为后台开发的支撑,的确扮演了一个举足轻重的角色,那么我...
  • u013433821
  • u013433821
  • 2015年09月25日 11:59
  • 3661

hibernate条件查询service层和daoceng底层封装

用Hibernate写底层接接口的时候,为了使dao层的代码便于维护,增加代码的复用性,会写一个dao层的基类以及基类的接口。 在这里我举一个通过ID查询实体的方法基类的写法: 用ID查询...
  • u012999622
  • u012999622
  • 2016年09月01日 22:16
  • 522

在DAO中对Hibernate的封装(新)

偶然看见 l_walker于2003-9-15写的一篇关于在DAO中对Hibernate的封装的文章(http://forum.javaeye.com/viewtopic.php?t=122被置于精华...
  • woshichenxu
  • woshichenxu
  • 2006年05月08日 18:13
  • 4366

Hibernate4 一个baseDao的封装,包含一些通用的增删改查方法

1.前言 网上有很多封装的不错的baseDao,但是不一定适合,所以把自己用了这段时间的baseDao拿出来,一方面自己以后用着方便,一方面大家有需要可以拿去用; 因为此类封装完毕还有些方法没有在...
  • huitoukest
  • huitoukest
  • 2015年12月31日 14:26
  • 8168
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate DAO类的封装范文
举报原因:
原因补充:

(最多只允许输入30个字)