package com.ddhome.dao;
import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.LockMode;
import org.hibernate.criterion.DetachedCriteria;
/**
*
* @author txc
*/
public abstract interface GenericDao {
// -------------------- 基本检索、增加、修改、删除操作 --------------------
// 根据主键获取实体。如果没有相应的实体,返回 null。
public T get(PK id);
// 根据主键获取实体并加锁。如果没有相应的实体,返回 null。
public T getWithLock(PK id, LockMode lock);
// 根据主键获取实体。如果没有相应的实体,抛出异常。
public T load(PK id);
// 根据主键获取实体并加锁。如果没有相应的实体,抛出异常。
public T loadWithLock(PK id, LockMode lock);
// 获取全部实体。
public List loadAll();
// loadAllWithLock() ?
// 更新实体
public void update(T entity);
// 更新实体并加锁
public void updateWithLock(T entity, LockMode lock);
// 存储实体到数据库
public void save(T entity);
// saveWithLock()
// 增加或更新实体
public void saveOrUpdate(T entity);
// 增加或更新集合中的全部实体
public void saveOrUpdateAll(Collection entities);
// 删除指定的实体
public void delete(T entity);
// 加锁并删除指定的实体
public void deleteWithLock(T entity, LockMode lock);
// 根据主键删除指定实体
public void deleteByKey(PK id);
// 根据主键加锁并删除指定的实体
public void deleteByKeyWithLock(PK id, LockMode lock);
// 删除集合中的全部实体
public void deleteAll(Collection entities);
// -------------------- HSQL ----------------------------------------------
// 使用HSQL语句直接增加、更新、删除实体
public int bulkUpdate(String queryString);
// 使用带参数的HSQL语句增加、更新、删除实体
public int bulkUpdate(String queryString, Object[] values);
// 使用HSQL语句检索数据
public List find(String queryString);
// 使用HSQL语句检索数据 ,分页
public List find(String queryString, Object[] values,int start,int limit);
public int getRow(final String queryString, final Object[] values);
// 使用带命名的参数的HSQL语句检索数据
public List findByNamedParam(String queryString, String[] paramNames,
Object[] values);
// 使用命名的HSQL语句检索数据
public List findByNamedQuery(String queryName);
// 使用带参数的命名HSQL语句检索数据
public List findByNamedQuery(String queryName, Object[] values);
// 使用带命名参数的命名HSQL语句检索数据
public List findByNamedQueryAndNamedParam(String queryName,
String[] paramNames, Object[] values);
// 使用HSQL语句检索数据,返回 Iterator
public Iterator iterate(String queryString);
// 使用带参数HSQL语句检索数据,返回 Iterator
public Iterator iterate(String queryString, Object[] values);
// 关闭检索返回的 Iterator
public void closeIterator(Iterator it);
// -------------------------------- Criteria ------------------------------
// 创建与会话无关的检索标准对象
public DetachedCriteria createDetachedCriteria();
// 创建与会话绑定的检索标准对象
public Criteria createCriteria();
// 使用指定的检索标准检索数据
public List findByCriteria(DetachedCriteria criteria);
// 使用指定的检索标准检索数据,返回部分记录
public List findByCriteria(DetachedCriteria criteria, int firstResult,
int maxResults);
// 使用指定的实体及属性检索(满足除主键外属性=实体值)数据
public List findEqualByEntity(T entity, String[] propertyNames);
public T findUniqueEqualByEntity(T entity, String[] propertyNames);
public T findUniqueByCriteria(DetachedCriteria criteria);
public List findEqualByEntity(T entity, String[] propertyNames,int fromIdx,int fetchCount);
// 使用指定的实体及属性(非主键)检索(满足属性 like 串实体值)数据
public List findLikeByEntity(T entity, String[] propertyNames);
// 使用指定的检索标准检索数据,返回指定范围的记录
public Integer getRowCount(DetachedCriteria criteria);
// 使用指定的检索标准检索数据,返回指定统计值
public Object getStatValue(DetachedCriteria criteria, String propertyName,
String StatName);
// -------------------------------- Others --------------------------------
// 加锁指定的实体
public void lock(T entity, LockMode lockMode);
// 强制初始化指定的实体
public void initialize(Object proxy);
// 强制立即更新缓冲数据到数据库(否则仅在事务提交时才更新)
public void flush();
}
分享到:
相关推荐
C# 数据库操作基类 包括存储过程和事务处理
数据库操作的基类,支持sql server,orcal,ole db,基于连接池的,包括存储过程的调用等,调用简单,使用哪种数据库类型直接实例化对应的dataPool即可。
MFC数据库基类模板,快速封装数据库类,减少繁琐的增删改查.zip
c#数据操作基类如何将Sql Server 表的结构导出到Word或Excel
以前下过的一个vc数据库操作基类,最近好不容易找出来,算是留个备忘吧!写的还可以,有些需要改进的地方!
自己写的数据库操作基类,请大虾门多多指教!
C# ADO.NET数据库操作基类(不好用你拿砖头拍)
本文实例讲述了PHP基于单例模式实现的数据库操作基类。分享给大家供大家参考,具体如下: 配置文件: <?php $db = array( 'host'=>'localhost', 'user'=>'root', 'password'=>'', 'database'=>'test', ) ?&...
1、.Net数据库操作基类,支持Mysql、Sql Server、Oracle等多种数据库; 2、同一项目可以支持调用不同数据库,只需在调用前调用DataBaseOperator.Init方法; 3、采用绑定变量调用,参数通过ParamCollections对象实现...
挺不错的数据库开发文档模板,欢迎参考哦。
cshapr连接数据库--SqlHelper基类
PageDataSource DataBas 数据库查询,记录增删改,数据分页
c#中orcal连接数据库的基类,全托管,支持JSON格式数据在库中增删改查,事务,语句,表格同步,可更加实际情况进行扩展.
数据访问基类,采用简单工厂模式设计,扩展性好,末前支持Access和MSSQL数据库.扩这其他数据库访问也比较方便.
C#基类库大全(包括网络操作,文件上传,图片处理,json解析,文件操作,数据库操作等)
Net连接数据库基类 SQLHelper
c# xml 操作 基类
C#操作DB2基类 基类调用如下 DB2Helper db2 = new DB2Helper(); DB2Connection con = db2.GetConn(); DB2Command cmd = con.CreateCommand(); cmd.CommandText = "{ CALL CHAXUN.BIG_CASH_TRADE(?,?)}"; DB2...
.net环境下,sqlite数据库操作基类