连接 mybatis plus
时间: 2023-09-24 20:03:44 浏览: 88
mybatis-plus
您好!对于MyBatis-Plus多表连表查询,可以通过以下几种方式实现:
1.使用MyBatis-Plus的Wrapper查询条件构造器,可以通过连表查询多张表。例如:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.select("user.id", "user.name", "dept.dept_name")
.eq("user.dept_id", "dept.id")
.like("user.name", "Tom");
List<User> userList = userMapper.selectList(wrapper);
```
其中,`select`方法指定要查询的字段,`eq`方法指定关联条件,`like`方法指定查询条件,`userMapper`为MyBatis-Plus提供的Mapper对象。
2.使用MyBatis-Plus的Join查询,可以通过`leftJoin`、`rightJoin`等方法实现多表连接查询。例如:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.select(User::getId, User::getName, Dept::getDeptName)
.eq(User::getDeptId, 1)
.leftJoin(Dept.class, User::getDeptId, Dept::getId);
List<User> userList = userMapper.selectList(wrapper);
```
其中,`leftJoin`方法指定要连接的表及其连接条件,`User::getDeptId`表示User表的dept_id字段,`Dept::getId`表示Dept表的id字段。
3.使用MyBatis-Plus的自定义SQL查询,可以编写自己的SQL语句实现多表连接查询。例如:
```java
@Select("SELECT u.id, u.name, d.dept_name FROM user u LEFT JOIN dept d ON u.dept_id = d.id WHERE u.name like '%Tom%'")
List<UserDeptDTO> getUserDeptList();
```
其中,`@Select`注解指定要执行的SQL语句,`UserDeptDTO`为自定义的DTO对象,用于接收查询结果。
以上是MyBatis-Plus多表连接查询的几种方式,希望对您有帮助。如有疑问,欢迎继续咨询!
阅读全文