简介:
MyBatis-Flex 是一个优雅的 MyBatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库,其内置的 "QueryWrapper " → 亮点,帮助我们极大的减少了 SQL 编写的工作的同时,减少出错的可能性。
官网:
MyBatis-Flex - MyBatis-Flex 官方网站https://mybatis-flex.com/
数据脱敏上文以及说到如果有感兴趣的小伙伴请移步到上一篇
多表联查
初始对比:
为了方便熟悉,我们和mybatis-plus的查询做一个对比,更加容易理解:
MyBatis-Flex:
QueryWrapper query = new QueryWrapper()
.select(
ACCOUNT.ID,
ACCOUNT.USER_NAME,
max(ACCOUNT.BIRTHDAY),
avg(ACCOUNT.SEX).as("sex_avg")
);
List<Employee> employees = employeeMapper.selectListByQuery(query);
MyBatis-Plus:
QueryWrapper<Employee> queryWrapper = new QueryWrapper<>();
queryWrapper
.select(
"id"
,"user_name"
,"max(birthday)"
,"avg(birthday) as sex_avg"
);
List<Employee> employees = employeeMapper.selectList(queryWrapper);
在多表联查前面我们先尝试一个基础查询(基础映射):
@Table(value = "tb_account")
public class Account {
@Id(keyType = KeyType.Auto)
private Long id;
private String userName;
private int age;
//getter setter
}
Account.java
与表 tb_account
是字段和属性是一一对应关系的。此时,我们在查询数据的时候,可以通过 AccountMapper
方法直接查询,例如:
QueryWrapper qw = new QueryWrapper();
qw.select(ACCOUNT.ALL_COLUMNS)
.where(ACCOUNT.ID.ge(