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

package com.util; import java.io.Serializable; import java.sql.SQLException; ...

Hibernate的手动基本配置和DAO类增删改查方法的封装

使用所有的框架都一样,导jar包和配置相应的文件,以下就是hibernate手动配置的代码。(熟练之后可以利用MyEclipse的自带工具直接进行框架的搭建) 一、导入hibernate的基本包 二...

Hibernate的手动基本配置和DAO类增删改查方法的封装

使用所有的框架都一样,导jar包和配置相应的文件,以下就是hibernate手动配置的代码。(熟练之后可以利用MyEclipse的自带工具直接进行框架的搭建) 一、导入hibernate的基本包 ...

Spring对Hibernate DAO的封装

@Repository("dao") @Scope("prototype") public  class GenericDao         extends HibernateDaoSuppo...
  • mccwlh
  • mccwlh
  • 2011年10月27日 14:06
  • 575

hibernate底层dao封装

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

Hibernate DAO封装【来自网络】

package com.eclink.editp.dao;import java.io.Serializable;import java.math.BigDecimal;import java.uti...

自己扩展封装Hibernate模板DAO-之一简介

SpringSide是以Spring Framework为核心,提供Pragmatic之中又适合工业化大规模开发的企业应用Kickstart。 这是前一段时间接触的一个Java Web项目环境搭建工具...

Hibernate之DAO操作基础类

/**  * DAO基础操作类  */ package com.hs.ask.dao.impl; import java.io.Serializable; import java.uti...

Hibernate5 Dao层基类

Hibernate5 Dao层基类
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate DAO类的封装范文
举报原因:
原因补充:

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