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日