关闭

hibernate DAO类的封装范文

804人阅读 评论(0) 收藏 举报

/*
 * 文件名: 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) ;
}
 感谢好朋友小智的帮助。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25794次
    • 积分:393
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:5篇
    • 译文:0篇
    • 评论:9条
    最新评论
    工作网站
    学习