1.基础查询
List<Employee> employees = QueryChain.of(employeeMapper)
.like(StringUtils.isNotEmpty(searchWord), Employee::getUserName,"B")
.eq(Employee::getGender, 1)
.gt(Employee::getAge, 24)
.list()
;
2.查询集合函数
List<Employee> employees = QueryChain.of(employeeMapper)
.select(Employee::getId)
.select(Employee::getUserName,c->c.max())
.select(Employee::getBirthday,c->c.max())
.select(Employee::getBirthday,c->c.avg().as("sex_avg"))
.list()
;
3.and(...) 和 or(...)
假设我们要构建如下的 SQL 进行查询(需要在 SQL 中添加括号)。
SELECT * FROM tb_account WHERE id >= 100 AND (sex = 1 OR sex = 2) OR (age IN (18,19,20) AND user_name LIKE "%michael%" )
Xbatis:
List<Employee> employees = QueryChain.of(employeeMapper)
.gte(Employee::getId, 100)
.nested(i -> {
i.eq(Employee::getSex, 1)
.or()
.eq(Employee::getSex, 2);
})
.or()
.nested(i -> {
i.in(Employee::getAge, 18, 19, 20).
like(Employee::getUserName, "michael");
})
.list();