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