package com.founder.bbc.generic;
import java.io.Serializable;
import java.util.List;
/*范型接口
* 作者:北京师范大学 计算机系 张人杰
* 转载、使用,请保留作者信息
* 此范型已应用于方正某项目
*/
public interface GenericDao<PK extends Serializable,T extends GenericEntity<PK>> {
/**
* 列出所有内容
* @return
*/
public List<T> listAll();
/**
* 列出所有内容(使用特殊语句)
* @return
*/
public List<T> listAll(String ibatisStatement);
/**
* 根据条件查询并返回所有查询结果
* @param condition
* @return
*/
public List<T> queryAll(T condition);
/**
* 根据条件查询并返回所有查询结果(使用特殊语句)
* @param condition
* @return
*/
public List<T> queryAll(T condition,String ibatisStatement);
/**
* 根据条件查询对象
* @param condition
* @return
*/
public T queryObject(T condition);
/**
* 根据条件查询对象(使用特殊语句)
* @param condition
* @return
*/
public T queryObject(T condition,String ibatisStatement);
/**
* 查询所有内容,并分页返回结果
* @param pageNo
* @param pageSize
* @return
*/
public List<T> pagedListAll(Integer pageNo, Integer pageSize);
/**
* 查询所有内容,并分页返回结果(使用特殊语句)
* @param pageNo
* @param pageSize
* @return
*/
public List<T> pagedListAll(Integer pageNo, Integer pageSize, String ibatisStatement);
/**
* 根据条件查询所有内容,并分页返回结果
* @param condition
* @return
*/
public List<T> pagedListQuery(T condition);
/**
* 根据条件查询所有内容,并分页返回结果(使用特殊语句)
* @param condition
* @return
*/
public List<T> pagedListQuery(T condition, String ibatisStatement);
/**
* 保存或更新实体
* Oracle,此处采用存储过程完成,以保证id序列的正确,并将新插入的id返回给插入对象
* @param template
* @return
*/
public PK saveOrUpdate(T object);
/**
* 保存或更新实体(使用特殊语句)
* Oracle,此处采用存储过程完成,以保证id序列的正确,并将新插入的id返回给插入对象
* @param template
* @return
*/
public PK saveOrUpdate(T object, String ibatisStatement);
/**
* 插入实体
* @param template
* @return
*/
public PK insert(T object);
/**
* 插入实体(使用特殊语句)
* @param template
* @return
*/
public PK insert(T object, String ibatisStatement);
/**
* 更新实体
* @param template
* @return
*/
public Integer update(T object);
/**
* 更新实体(使用特殊语句)
* @param template
* @return
*/
public Integer update(T object, String ibatisStatement);
/**
* 删除实体,或根据条件删除列表
* @param condition
* @return
*/
public void remove(T condition);
/**
* 删除实体,或根据条件删除列表(使用特殊语句)
* @param condition
* @return
*/
public void multiPKRemove(T condition, String ibatisStatement);
/**
* 多选删除,或根据条件删除列表
* @param condition
* @return
*/
public void multiPKRemove(T condition);
/**
* 多选删除,或根据条件删除列表(使用特殊语句)
* @param condition
* @return
*/
public void remove(T condition, String ibatisStatement);
/**
* 计数
* @return
*/
public Integer count(T condition);
/**
* 计数(使用特殊语句)
* @return
*/
public Integer count(T condition, String ibatisStatement);
}