import java.util.LinkedHashMap;
import com.itcast.bean.QueryResult;
public interface DAO {
/**
* 保存實體
* @param entity 實體類
*/
public void save(Object entity);
/**
* 更新實體
* @param entity 實體類
*/
public void update(Object entity);
/**
* 刪除實體
* @param entityClass 實體類
* @param entityid 實體類id
*/
public <T> void delete(Class<T> entityClass, Object entityid);
/**
* 刪除實體
* @param entityClass 實體類
* @param entityids 實體類id數組
*/
public <T> void delete(Class<T> entityClass, Object[] entityids);
/**
* 查詢實體
* @param <T>
* @param entityClass 實體類
* @param entityid 實體類id
* @return
*/
public <T> T find(Class<T> entityClass, Object entityid);
/**
* 獲取分頁數據
* @param <T>
* @param entityClass 實體類
* @param firstindex 開始查詢的記錄的索引
* @param maxresult 需要查詢出來的記錄數
* @param wherejbql 過濾查詢語句
* @param orderby 排序查詢語句哈希鏈
* @return
*/
// 增加根據實體類的屬性進行升序或降序排列功能,通過LinkedHashMap實現
// 構造一個排序key1 asc,key2 desc...
public <T> QueryResult<T> getScrollData(Class<T> entityClass,
int firstindex, int maxresult,String wherejbql,
Object[] queryParams , LinkedHashMap<String, String> orderby);
/**
* 過濾分頁查詢,但是不排序
* @param <T>
* @param entityClass 實體類
* @param firstindex 開始查詢的記錄的索引
* @param maxresult 需要查詢出來的記錄數
* @param wherejbql
* @param queryParams
* @return
*/
public <T> QueryResult<T> getScrollData(Class<T> entityClass,
int firstindex, int maxresult,String wherejbql,
Object[] queryParams);
/**
* 排序分頁查詢
* @param <T>
* @param entityClass 實體類
* @param firstindex 開始查詢的記錄的索引
* @param maxresult 需要查詢出來的記錄數
* @param orderby
* @return
*/
public <T> QueryResult<T> getScrollData(Class<T> entityClass,
int firstindex, int maxresult, LinkedHashMap<String, String> orderby);
/**
* 分頁查詢
* @param <T>
* @param entityClass 實體類
* @param firstindex 開始查詢的記錄的索引
* @param maxresult 需要查詢出來的記錄數
* @return
*/
public <T> QueryResult<T> getScrollData(Class<T> entityClass,
int firstindex, int maxresult);
/**
* 查詢出所有結果
* @param <T>
* @param entityClass 實體類
* @return
*/
public <T> QueryResult<T> getScrollData(Class<T> entityClass);
}
使用泛型實現可重用的DAO
最新推荐文章于 2020-03-11 16:49:34 发布