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);
}