import java.util.*;
import java.io.Serializable;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import com.fangj.core.platform.util.PageInfo;
public interface GenericDAO<T, PK extends Serializable> {
/**
* 创建一个新的实例对象到数据库
* @param newInstance T 泛型类,即实际应用中的POJO
* @return boolean
*/
public boolean create(T newInstance);
/**
* 从数据库删除实例
* @param condition String 删除操作的条件
* @return boolean
*/
public boolean delete(String condition);
/**
* 从数据库删除实例
* @param SQL String
* @return boolean
*/
public boolean deleteBySQL(String SQL);
/**
* 更新一个实例对象到数据库
* @param newInstance T 泛型类,即实际应用中的POJO
* @return boolean
*/
public boolean update(T newInstance);
/**
* 根据主键查找实例对象
* @param id PK 主键
* @return T
*/
public T findById(PK id);
/**
* 根据SQL查找实例对象
* @param SQL String
* @return T
*/
public T findBySQL(String SQL);
/**
* 根据SQL查找实例对象
* @param SQL String
* @param cls Class
* @return Object
*/
public Object findBySQL(String SQL, Class cls);
/**
* 查找所有实例对象
* @return List
*/
public List<T> findAll();
/**
* 根据SQL查找对象列表
* @param SQL String
* @return List
*/
public List<T> findAllBySQL(String SQL);
/**
* 根据SQL查找对象列表
* @param SQL String
* @param cls Class
* @return List
*/
public List findAllBySQL(String SQL,Class cls);
/**
* 分页显示实例对象信息列表,该方法只针对单表操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param condition String 查询条件
* @return List 实例对象列表
*/
public List<T> findPageList(int currentPage, int pageSize, String condition);
/**
* 分页显示实例对象信息列表,该方法对所有操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param SQL String SQL语句
* @return List 实例对象列表
*/
public List findPageListBySQL(int currentPage, int pageSize, String SQL);
/**
* 分页显示实例对象信息列表,该方法对所有操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param SQL String SQL语句
* @param cls Class vo对象的类型
* @return List 实例对象列表
*/
public List findPageListBySQL(int currentPage, int pageSize, String SQL,Class cls);
/**
* 分页显示实例对象信息列表,该方法对所有操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param SQL String SQL语句
* @param values Object[] SQL语句的条件参数
* @return List
*/
public List findPageListBySQL(final int currentPage, final int pageSize,
final String SQL, final Object[] values);
/**
* 分页显示实例对象信息列表,该方法对所有操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param SQL String SQL语句
* @param values Object[] SQL语句的条件参数
* @param cls Class vo对象的类型
* @return List
*/
public List findPageListBySQL(final int currentPage, final int pageSize,
final String SQL, final Object[] values, Class cls);
/**
* 查找分页信息,该方法只针对单表操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param condition String 查询条件
* @return PageInfo 分页信息对象
*/
public PageInfo findPageInfo(int currentPage, int pageSize,
String condition);
/**
* 查找分页信息,该方法对所有操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param SQL String SQL语句
* @return PageInfo 分页信息对象
*/
public PageInfo findPageInfoBySQL(int currentPage, int pageSize,
String SQL);
/**
* 查找分页信息,该方法对所有操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param SQL String SQL语句
* @param Object[] sqlParamArray 与当前SQL相应的条件数组
* @return PageInfo 分页信息对象
*/
public PageInfo findPageInfoBySQL(final int currentPage, final int pageSize,
final String SQL,final Object[] sqlParamArray);
/**
* 查找分页信息,该方法只针对单表操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param condition List<Criterion> Hibernate查询条件列表
* @return PageInfo 分页信息对象
*/
public PageInfo findPageInfo(int currentPage, int pageSize,
List<Criterion> condition);
/**
* 分页显示实例对象信息列表,该方法只针对单表操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param condition List<Criterion> Hibernate查询条件列表
* @return List 实例对象列表
*/
public List<T> findPageList(int currentPage, int pageSize, List<Criterion> condition);
/**
* 分页显示实例对象信息列表,该方法只针对单表操作有效
* @param currentPage int 当前页码
* @param pageSize int 每页显示的记录数
* @param criterionList List<Criterion> Hibernate查询条件列表
* @param criterionOrder List<Order> 排序
* @return List 实例对象列表 */
public List<T> findPageList(int currentPage, int pageSize, List<Criterion> criterionList,List<Order> criterionOrder);
}
泛型dao
最新推荐文章于 2024-10-16 16:42:42 发布