package com.hg.ecommerce.dao; import java.util.Collection; import java.util.List; import java.util.Map; import com.hg.ecommerce.dao.support.Pageable; import com.hg.ecommerce.dao.support.SQLWrapper; import com.hg.ecommerce.dao.support.Sortable; public interface BaseDao<T> { /** * 直接添加一个实体Model * @param param:实体 * @return:成功返回true */ Object add(T param); /** * 同时添加多个实体Model * @param params:Model的Collection集合 * @return:成功返回true */ List<Object> addMulti(Collection<T> params); Object addByWrapper(SQLWrapper sqlWrapper); boolean update(T param); boolean updateByWrapper(SQLWrapper sqlWrapper); boolean upsert(T param); boolean delete(T param); boolean deleteById(Object...id); boolean deleteByWrapper(SQLWrapper sqlWrapper); T findOneById(Object...id); T findOneByWrapper(SQLWrapper sqlWrapper); List<T> findAll(); //wrapper List<T> findAllByWrapper(SQLWrapper sqlWrapper); List<T> findAllByWrapperInPage(SQLWrapper sqlWrapper,Pageable pageable); List<T> findAllByWrapperInOrder(SQLWrapper sqlWrapper,Sortable sortable); List<T> findAllByWrapperInPageInOrder(SQLWrapper sqlWrapper,Pageable pageable,Sortable sortable); //native List<Map<String, Object>> findByNativeQuery(String sql); void updateByNativeQuery(String sql); //all rows long getCount(); long getCountByWrapper(SQLWrapper sqlWrapper); }