java dao 实现_java范型DAO实现

该博客介绍了一个Java泛型DAO基础接口的实现,包括获取、创建、更新、删除对象,以及各种统计和分页查询操作。接口使用DAOBase命名,并提供了一套完整的数据操作方法。
摘要由CSDN通过智能技术生成

package com.common.dao;

import java.util.Date;

import java.util.List;

import java.util.Map;

/**

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

*

* @authortgl

*/

public interface DAOBase {

/**

* 根据对象主键ID查找对象

*

* @paramid主键ID

* @return相关对象

*/

T get(long id);

/**

* 保存新对象

*

* @paramentity待保存的对象

*/

void create(T entity);

/**

* 保存对象的更新

*

* @paramentity待保存的对象

*/

void update(T entity);

/**

* 删除指定的对象

*

* @paramentity待删除的对象

*/

void delete(T entity);

/**

* 删除指定的对象

*

* @paramfilter删除的条件

* @return实际删除的对象数量

*/

int delete(DAOFilter filter);

/**

* 清空表

*

* @return实际删除的对象数量

*/

int clear();

/**

* 返回对象的数量

*

* @return对象的数量

*/

int count();

/**

* 获得 最新记录的创建时间

*

* @return

*/

Date getDataMax();

/**

* 获得最早记录的创建时间

*

* @return

*/

Date getDateMin();

/**

* 返回条件的对象数量

*

* @paramfilter查询条件

*/

int count(DAOFilter filter);

/**

* 进行无条件的统计,返回统计对象。

*

* @param count进行count统计的字段及其别名Map

* @param sum进行sum统计的字段及其别名Map

* @param fields用于显示的字段列表,fields包含的元素必须是groupBy的子集

* @param groupBy进行分组统计的字段列表

* @return 统计对象列表

*/

List stat(Map count, Map sum, List fields, List groupBy);

/**

* 进行有条件的统计,返回统计对象。

*

* @paramcount进行count统计的字段及其别名Map

* @paramsum进行sum统计的字段及其别名Map

* @paramfields用于显示的字段列表,fields包含的元素必须是groupBy的子集

* @paramgroupBy进行分组统计的字段列表

* @paramfilter查询条件

* @return 统计对象列表

*/

List stat(Map count, Map sum, List fields, List groupBy, DAOFilter filter);

/**

* 进行无条件的统计,返回统计对象。

*

* @parampageNo页码,从“1”开始

* @parampageSize页大小

* @param count进行count统计的字段及其别名Map

* @param sum进行sum统计的字段及其别名Map

* @param fields用于显示的字段列表,fields包含的元素必须是groupBy的子集

* @param groupBy进行分组统计的字段列表

* @return 统计对象列表

*/

FlipList stat(int pageNo, int pageSize, Map count, Map sum, List fields, List groupBy);

/**

* 进行有条件的统计,返回统计对象。

*

* @parampageNo页码,从“1”开始

* @parampageSize页大小

* @paramcount进行count统计的字段及其别名Map

* @paramsum进行sum统计的字段及其别名Map

* @paramfields用于显示的字段列表,fields包含的元素必须是groupBy的子集

* @paramgroupBy进行分组统计的字段列表

* @paramfilter查询条件

* @return 统计对象列表

*/

FlipList stat(int pageNo, int pageSize, Map count, Map sum, List fields, List groupBy, DAOFilter filter);

/**

* 返回符合查询条件的对象,如果有多个对象符合条件,则返回第一个

*

* @paramfilter查询条件

* @return符合条件的对象或者null

*/

T find(DAOFilter filter);

/**

* 返回全部对象

*

* @return全部对象的列表

*/

List list();

/**

* 返回全部对象

*

* @return全部对象的列表

*/

List list(Long[] ids);

/**

* 返回全部对象

*

* @return全部对象的列表

*/

List list(List list);

/**

* 返回符合查询条件的全部对象

*

* @paramfilter查询条件

* @return对象列表

*/

List list(DAOFilter filter);

/**

* 按照默认顺序、无查询条件,返回介于起止位置的全部对象

*

* @paramstart起点,从“0”开始

* @paramcount个数

* @return全部对象的列表

*/

List list(int start, int count);

/**

* 按照给定的查询条件和排序方式,返回介于起止位置的全部对象

*

* @paramstart起点,从“0”开始

* @paramcount个数

* @paramfilter查询条件

* @return对象列表

*/

List list(int start, int count, DAOFilter filter);

/**

* 按照默认顺序、无查询条件,分页返回对象列表

*

* @parampageNo页码,从“1”开始

* @parampageSize页大小

* @paramfilter查询条件

* @return分页的对象列表

*/

FlipList flip(int pageNo, int pageSize);

/**

* 按照给定的查询条件和排序方式,分页返回对象列表

*

* @parampageNo页码,从“1”开始

* @parampageSize页大小

* @paramfilter查询条件

* @return分页的对象列表

*/

FlipList flip(int pageNo, int pageSize, DAOFilter filter);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值