//开启分页Page<Student> page =PageHelper.startPage(1,10);Weekend<Student> weekend =Weekend.of(Student.class);//筛选字段
weekend.selectProperties(Student::getId,Student::getCode,Student::getName);
weekend.orderBy(Student::getCode);//正序
weekend.orderBy(Student::getName).desc();//倒序String key ="a";//查询条件1SqlCriteriaHelper<Student> where1 =SqlCriteriaHelper.custom(Student.class);
where1.andLike(Student::getCode, key);//like 会自动加%
where1.orLike(Student::getName, key);//查询条件2SqlCriteriaHelper<Student> where2 =SqlCriteriaHelper.custom(Student.class);
where2.andEqualTo(Student::getClassId,null);//当为null时,不参与查询条件
where2.andEqualTo(Student::getFlag,1);
where2.andEqualTo(Student::getStatus,"1");
where2.andLessThanOrEqualTo(Student::getCreateTime,LocalDateTime.now());//查询条件1 and 查询条件2Example example =Example.builder(Student.class).andWhere(where1).andWhere(where2).build();//weekend实际上是一个Example,因此可以将weekend和example进行查询条件合并//where del = 0 and (查询条件1 and 查询条件2)//逻辑删除字段会自动填充,如:del=0
weekend.getOredCriteria().addAll(example.getOredCriteria());this.selectByExample(weekend);
sql执行结果:
SELECTTOP10 id,
code,
name
FROM(SELECT
ROW_NUMBER ()OVER(ORDERBY code, name DESC) PAGE_ROW_NUMBER,
id,
code,
name
FROM(SELECT
id,
code,
name
FROM
STUDENT
WHERE(( code LIKE'%a%'OR name LIKE'%a%')AND( last_flag =1ANDstatus='1'AND create_time <='2022-02-23T18:06:12.004'))AND del =0)AS PAGE_TABLE_ALIAS
)AS PAGE_TABLE_ALIAS
WHERE
PAGE_ROW_NUMBER >0ORDERBY
PAGE_ROW_NUMBER;