首页>代码>java范型DAO实现>/1122617012257792.java
package com.common.dao;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 泛型化的DAO基本接口定义。为了和“XXXDao”等常规的领域对象的Dao相区分,这里在命名上故意将DAO全大写并放在了前边。
 * 
 * @author	tgl
 */
public interface DAOBase<T> {

	/**
	 * 根据对象主键ID查找对象
	 *
	 * @param	id	主键ID
	 * @return	相关对象
	 */
	T get(long id);

	/**
	 * 保存新对象
	 *
	 * @param	entity	待保存的对象
	 */
	void create(T entity);

	/**
	 * 保存对象的更新
	 *
	 * @param	entity	待保存的对象
	 */
	void update(T entity);

	/**
	 * 删除指定的对象
	 *
	 * @param	entity	待删除的对象
	 */
	void delete(T entity);

	/**
	 * 删除指定的对象
	 *
	 * @param	filter	删除的条件
	 * @return	实际删除的对象数量
	 */
	int delete(DAOFilter filter);

	/**
	 * 清空表
	 * 
	 * @return	实际删除的对象数量
	 */
	int clear();

	/**
	 * 返回对象的数量
	 *
	 * @return	对象的数量
	 */
	int count();

	/**
	 * 获得 最新记录的创建时间
	 * 
	 * @return
	 */
	Date getDataMax();

	/**
	 * 获得最早记录的创建时间
	 * 
	 * @return
	 */
	Date getDateMin();

	/**
	 * 返回条件的对象数量
	 *
	 * @param	filter	查询条件
	 */
	int count(DAOFilter filter);

	/**
	 * 进行无条件的统计,返回统计对象。
	 * 
	 * @param count		进行count统计的字段及其别名Map
	 * @param sum		进行sum统计的字段及其别名Map
	 * @param fields	用于显示的字段列表,fields包含的元素必须是groupBy的子集
	 * @param groupBy	进行分组统计的字段列表
	 * @return 统计对象列表
	 */
	List<T> stat(Map<String, String> count, Map<String, String> sum, List<String> fields, List<String> groupBy);

	/**
	 * 进行有条件的统计,返回统计对象。
	 * 
	 * @param	count	进行count统计的字段及其别名Map
	 * @param	sum		进行sum统计的字段及其别名Map
	 * @param	fields	用于显示的字段列表,fields包含的元素必须是groupBy的子集
	 * @param	groupBy	进行分组统计的字段列表
	 * @param	filter	查询条件
	 * @return 统计对象列表
	 */
	List<T> stat(Map<String, String> count, Map<String, String> sum, List<String> fields, List<String> groupBy, DAOFilter filter);

	/**
	 * 进行无条件的统计,返回统计对象。
	 * 
	 * @param	pageNo		页码,从“1”开始
	 * @param	pageSize	页大小
	 * @param count			进行count统计的字段及其别名Map
	 * @param sum			进行sum统计的字段及其别名Map
	 * @param fields		用于显示的字段列表,fields包含的元素必须是groupBy的子集
	 * @param groupBy		进行分组统计的字段列表
	 * @return 统计对象列表
	 */
	FlipList<T> stat(int pageNo, int pageSize, Map<String, String> count, Map<String, String> sum, List<String> fields, List<String> groupBy);

	/**
	 * 进行有条件的统计,返回统计对象。
	 * 
	 * @param	pageNo		页码,从“1”开始
	 * @param	pageSize	页大小
	 * @param	count		进行count统计的字段及其别名Map
	 * @param	sum			进行sum统计的字段及其别名Map
	 * @param	fields		用于显示的字段列表,fields包含的元素必须是groupBy的子集
	 * @param	groupBy		进行分组统计的字段列表
	 * @param	filter		查询条件
	 * @return 统计对象列表
	 */
	FlipList<T> stat(int pageNo, int pageSize, Map<String, String> count, Map<String, String> sum, List<String> fields, List<String> groupBy, DAOFilter filter);

	/**
	 * 返回符合查询条件的对象,如果有多个对象符合条件,则返回第一个
	 *
	 * @param	filter	查询条件
	 * @return	符合条件的对象或者<code>null</code>
	 */
	T find(DAOFilter filter);

	/**
	 * 返回全部对象
	 *
	 * @return	全部对象的列表
	 */
	List<T> list();

	/**
	 * 返回全部对象
	 *
	 * @return	全部对象的列表
	 */
	List<T> list(Long[] ids);

	/**
	 * 返回全部对象
	 *
	 * @return	全部对象的列表
	 */
	List<T> list(List<Long> list);

	/**
	 * 返回符合查询条件的全部对象
	 *
	 * @param	filter	查询条件
	 * @return	对象列表
	 */
	List<T> list(DAOFilter filter);

	/**
	 * 按照默认顺序、无查询条件,返回介于起止位置的全部对象
	 *
	 * @param	start	起点,从“0”开始
	 * @param	count	个数
	 * @return	全部对象的列表
	 */
	List<T> list(int start, int count);

	/**
	 * 按照给定的查询条件和排序方式,返回介于起止位置的全部对象
	 *
	 * @param	start	起点,从“0”开始
	 * @param	count	个数
	 * @param	filter	查询条件
	 * @return	对象列表
	 */
	List<T> list(int start, int count, DAOFilter filter);

	/**
	 * 按照默认顺序、无查询条件,分页返回对象列表
	 *
	 * @param	pageNo		页码,从“1”开始
	 * @param	pageSize	页大小
	 * @param	filter		查询条件
	 * @return	分页的对象列表
	 */
	FlipList<T> flip(int pageNo, int pageSize);

	/**
	 * 按照给定的查询条件和排序方式,分页返回对象列表
	 *
	 * @param	pageNo		页码,从“1”开始
	 * @param	pageSize	页大小
	 * @param	filter		查询条件
	 * @return	分页的对象列表
	 */
	FlipList<T> flip(int pageNo, int pageSize, DAOFilter filter);

}
最近下载更多
1158061534  LV1 2020年6月17日
18711486720  LV1 2019年7月4日
GUYINGNAN  LV3 2018年10月17日
zzlsrj  LV10 2015年3月14日
erwcgb  LV3 2015年2月12日
dggesde  LV4 2015年2月1日
迷彩风情  LV26 2014年11月4日
AXIN  LV36 2014年2月12日
最近浏览更多
云生123456  LV6 2021年6月8日
1771658781  LV5 2020年12月17日
Qingningjun 2020年11月2日
暂无贡献等级
1158061534  LV1 2020年6月17日
滴滴嗒嗒  LV15 2020年4月2日
小王wang  LV10 2020年1月13日
安妮的小熊  LV6 2019年12月23日
嘿嘿3211 2019年8月29日
暂无贡献等级
18711486720  LV1 2019年7月4日
tonghao  LV18 2019年5月29日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友