package ssh.base; import java.util.LinkedHashMap; import ssh.utils.QueryResult; public interface DAO { //保存数据 public void save(Object entity); //更新数据 public void update(Object entity); //删除单条记录 public <T> void delete(Class<T> entityClass,Object entityId); //删除多条记录 public <T> void delete(Class<T> entityClass,Object[] entityIds); //查找指定ID的实体类数据 public <T> T find(Class<T> entityClass,Object entityId); //在方法上定义泛型需要在方法上写<X>,,第一个T是定义泛型,第2个T是返回类型 /** * 获得分页数据 * QueryResult<T> 泛型定义在类上。因为需要返回查询的数据List,和查询的总条数,所以需要自定义类型返回2个数据 * @param <T> 泛型 * @param entityClass 实体类 * @param firstIndex 开始索引 * @param maxResult 需要获取的记录数 * @param wherejpql where条件语句 * @param queryParams 条件语句参数 * @param orderby 排序,LinkedHashMap先进先出,使用这个是因为先进去的放到第一位,order by key1 desc,key2 asc * @return */ public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstIndex, int maxResult, String wherejpql,Object[] queryParams,LinkedHashMap<String, String> orderby); public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstIndex, int maxResult,String wherejpql,Object[] queryParams); public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstIndex, int maxResult,LinkedHashMap<String, String> orderby); public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstIndex, int maxResult); public <T> QueryResult<T> getScrollData(Class<T> entityClass); }