lambdaquerywrapper多表查询的例子
时间: 2023-05-18 16:02:25 浏览: 126
LambdaQueryWrapper 是一个基于 Lambda 表达式的查询构造器,可以用于多表查询。以下是一个多表查询的例子:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.select(User::getId, User::getUsername, Order::getOrderNo, Order::getAmount)
.eq(User::getUsername, "张三")
.eq(Order::getStatus, 1)
.eq(User::getId, Order::getUserId)
.orderByDesc(Order::getCreateTime);
List<Map<String, Object>> list = userMapper.selectMaps(wrapper);
```
这个例子中,我们查询了 User 和 Order 两张表的数据,并且只返回了部分字段。我们使用了 Lambda 表达式来指定查询条件和返回字段,使用了 selectMaps 方法来执行查询。
相关问题
lambdaquerywrapper 多表查询
LambdaQueryWrapper可以用于多表查询,可以通过join方法来实现。下面是一个使用LambdaQueryWrapper进行多表查询的例子:
```java
LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery();
wrapper.select(User.class, info -> !info.getColumn().equals("password"))
.eq(User::getUsername, "admin")
.nested(i -> i.eq(User::getEnabled, true).or().eq(User::getUsername, "test"))
.inSql(User::getId, "select user_id from user_role where role_id = 1")
.orderByDesc(User::getId)
.last("limit 1");
wrapper.join(UserRole.class, UserRole::getUserId, User::getId)
.eq(UserRole::getRoleId, 1);
List<User> userList = userMapper.selectList(wrapper);
```
上面的例子中,我们使用LambdaQueryWrapper同时查询了User和UserRole两张表,并且使用join方法将它们关联起来。在LambdaQueryWrapper中,我们可以使用select方法来指定查询的列,使用eq方法来指定查询条件,使用inSql方法来指定子查询条件,使用orderByDesc方法来指定排序方式,使用last方法来指定查询的条数等。
LambdaQueryWrapper多表分页查询
LambdaQueryWrapper 是 MyBatis-Plus 中用于构建 SQL 查询语句的工具类。要进行多表分页查询,可以使用 LambdaQueryWrapper 的 join 方法来进行多表连接查询,然后使用 Page 对象进行分页。以下是一个示例代码:
```java
Page<User> page = new Page<>(1, 10);
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getStatus, 1)
.join(UserRole.class, UserRole::getUserId, User::getId)
.eq(UserRole::getRoleId, 2)
.select(User::getId, User::getUsername, User::getEmail);
IPage<User> userPage = userService.page(page, wrapper);
```
这个例子中,我们查询了用户表和用户角色表,条件是用户状态为 1,角色为 2。我们使用的是 LambdaQueryWrapper 的 join 方法来进行多表连接查询,连接条件是用户表的 id 字段等于用户角色表的 user_id 字段。然后我们使用 Page 对象进行分页查询,第一个参数是当前页码,第二个参数是每页的数据条数。最后我们调用 userService 的 page 方法进行查询,返回的是一个 IPage 对象,其中包含了查询结果和分页信息。