package org.hsweb.web.dao; import org.hsweb.web.bean.common.QueryParam; import java.util.List; /** * @author zhouhao */ public interface QueryMapper<Po, Pk> { /** * 根据条件集合查询记录,支持分页,排序。 * <br/>查询条件支持 类似$LIKE,$IN 表达式查询,如传入 name$LIKE 则进行name字段模糊查询 * <br/>$LIKE -->模糊查询 (只支持字符) * <br/>$START -->以?开始 (只支持字符 和数字) * <br/>$END -->以?结尾 (只支持字符 和数字) * <br/>$IN -->in查询,参数必须为List实现,传入类似 1,2,3 是非法的 * <br/>$GT -->大于 (只支持 数字和日期) * <br/>$LT -->小于 (只支持 数字和日期) * <br/>$NOT -->不等于 * <br/>$NOTNULL -->值不为空 * <br/>$ISNULL -->值为空 * <br/>所有操作支持取反 * * @param param 查询参数 * @return 查询结果 */ List<Po> select(QueryParam param); /** * 查询记录总数,用于分页等操作。查询条件同 {@link GenericMapper#select} * * @param param 查询参数 * @return 查询结果,实现mapper中的sql应指定默认值,否则可能抛出异常 */ int total(QueryParam param); /** * 根据主键查询记录 * * @param pk 主键 * @return 查询结果 */ Po selectByPk(Pk pk); }