📄 dao.java
字号:
package com.lily.dap.dao;
import java.io.Serializable;
import java.sql.ResultSet;
import java.util.List;
import org.hibernate.type.Type;
import org.springframework.orm.ObjectRetrievalFailureException;
import com.lily.dap.model.QueryCondition;
/**
* 抽象DAO,实现完整的基本CRUD操作及任意条件的查询操作。
*
* @author zouxuemo
*
*/
public interface Dao {
/**
* 检索给定ID的给定类对象
*
* @param clazz
* @param id
* @return
* @throws ObjectRetrievalFailureException
*/
public Object get(Class clazz, Serializable id) throws ObjectRetrievalFailureException;
/**
* 保存类对象
*
* @param o
*/
public void save(Object o);
/**
* 删除给定ID的给定类对象
*
* @param clazz
* @param id
* @throws ObjectRetrievalFailureException
*/
public void remove(Class clazz, Serializable id) throws ObjectRetrievalFailureException;
/**
* 删除给定实体对象
*
* @param entity
*/
public void remove(Object entity);
/**
* 重新装入类对象(重新刷新缓存)
*
* @param object
*/
public void reload(Object object);
/**
* 检索给定查询条件的给定类对象集合
* 返回检索出的结果
*
* @param clazz
* @param queryCondition
* @return
*/
public List gets(Class clazz, QueryCondition queryCondition);
/**
* 检索给定查询条件的给定类对象集合,提供回调接口,允许用户自己处理一些特殊的查询和排序
* 返回检索出的结果
*
* @param clazz
* @param queryCondition
* @param callBack
* @return
*/
public List gets(Class clazz, QueryCondition queryCondition, QueryCallback callBack);
/**
* 检索给定查询条件的给定类对象集合数量
*
* @param clazz
* @param queryCondition
* @return
*/
public long count(Class clazz, QueryCondition queryCondition);
/**
* 检索给定查询条件的给定类对象集合数量,提供回调接口,允许用户自己处理一些特殊的查询和排序
*
* @param clazz
* @param queryCondition
* @param callBack
* @return
*/
public long count(Class clazz, QueryCondition queryCondition, QueryCallback callBack);
/**
* 执行给定的HQL语句查询,返回查询结果集
*
* @param hql
* @return
*/
public List executeFind(final String hql);
/**
* 执行带参数的HQL语句查询,返回查询结果集
*
* @param hql
* @param args
* @param types
* @return
*/
public List executeFind(final String hql, final Object[] args, final Type[] types);
/**
* 执行给定的HQL语句查询,返回指定页号,指定每页条数的查询结果集
*
* @param hql
* @param pageNo
* @param pageSize
* @return
*/
public List executeFind(final String hql, final int pageNo, final int pageSize);
/**
* 执行带参数的HQL语句查询,返回指定页号,指定每页条数的查询结果集
*
* @param hql
* @param args
* @param types
* @param pageNo
* @param pageSize
* @return
*/
public List executeFind(final String hql, final Object[] args, final Type[] types, final int pageNo, final int pageSize);
/**
* 检索给定HQL查询条件的唯一查询结果对象,如果查询结果有多个,返回第一个查询对象
*
* @param hql
* @return
*/
public Object findUniqueResult(final String hql);
/**
* 检索带参数查询的给定HQL查询条件的唯一查询结果对象,如果查询结果有多个,返回第一个查询对象
*
* @param hql
* @param args
* @param types
* @return
*/
public Object findUniqueResult(final String hql, final Object[] args, final Type[] types);
/**
* 执行SQL语句,实现数据添加、删除、更新操作
*
* @param sql
* @throws Exception
*/
public void executeSQLUpdate(final String sql) throws Exception;
/**
* 执行带参数执行的SQL语句,实现数据添加、删除、更新操作
*
* @param sql
* @param args
* @param types
* @throws Exception
*/
public void executeSQLUpdate(final String sql, final Object[] args, final String[] types) throws Exception;
/**
* 给定SQL语句检索数据,返回检索的ResultSet
*
* @param sql
* @return
*/
public ResultSet executeSQLQuery(String sql);
/**
* 给定SQL语句检索数据,并且指定返回结果的页号和每页记录数,返回检索的ResultSet
*
* @param sql
* @param pageNo
* @param pageSize
* @return
*/
public ResultSet executeSQLQuery(String sql, final int pageNo, final int pageSize);
/**
* 给定SQL语句,减缩满足条件的数据条数
*
* @param sql
* @return
*/
public long executeSQLCount(String sql);
/**
* 调用转换回调接口,实现ResultSet与给定对象集合的转换
*
* @param rs
* @param callback
* @return
*/
public List ResultSet2List(ResultSet rs, TransitionCallback callback);
/**
* 转换ResultSet的数据到Map集合中,Map的key对应ResultSet的字段名
*
* @param rs
* @return
*/
public List ResultSet2List(ResultSet rs);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -