mybatisplus 不写sql语句多表联查
时间: 2023-05-03 18:07:50 浏览: 662
结合mybatis-plus实现简单不需要写sql的多表查询
5星 · 资源好评率100%
MyBatis-Plus 是一个基于 MyBatis 的增强工具,它简化了 MyBatis 的操作,提高了开发效率。MyBatis-Plus 不仅可以实现单表的增删改查操作,还可以实现多表联查操作,而且它提供了多种方式来实现多表联查,不需要写 SQL 语句。
一种常用的方式是使用 Wrapper 类,它可以快速实现多表联查。Wrapper 是 MyBatis-Plus 提供的一个条件构造器,它可以将多个条件组合在一起,生成相应的 SQL 语句。使用 Wrapper 实现多表联查的原理是将多个表的数据连接在一起,然后通过条件进行筛选。
使用 Wrapper 实现多表联查的代码如下:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.select("user.*, dept.dept_name")
.eq("user.id", 10)
.eq("dept.id", 20)
.leftJoin("dept", "user.dept_id = dept.id");
List<Map<String, Object>> list = userMapper.selectMaps(wrapper);
```
上面的代码实现的是查询 id 为 10 的用户所在的部门名称,其中 user 和 dept 分别代表用户表和部门表。使用 select 方法指定要查询的字段,用 eq 方法指定两个表的关联条件,用 leftJoin 方法将两个表联接在一起。最后使用 selectMaps 方法执行查询操作,得到结果集。
使用 MyBatis-Plus 实现多表联查可以大大简化开发工作,提高开发效率。同时,使用 Wrapper 进行条件构造,使得代码更加优雅,易于维护。
阅读全文