优化 这段代码 LambdaQueryWrapper<AuthRoleInfo> userTestWrapper = Wrappers.<AuthRoleInfo>lambdaQuery() .orderByAsc(AuthRoleInfo::getRoleId); userTestWrapper.eq(AuthRoleInfo::getLogIcdel,"0"); if(!StringUtils.isBlank(roleManagerSearch.getRoleName())){ userTestWrapper.like(AuthRoleInfo::getRoleName,roleManagerSearch.getRoleName()); } if(!StringUtils.isBlank(roleManagerSearch.getRoleCode())){ userTestWrapper.like(AuthRoleInfo::getRoleCode,roleManagerSearch.getRoleCode()); } Page<Object> objects = PageHelper.startPage(roleManagerSearch.getPage(), roleManagerSearch.getPageSize()); List<AuthRoleInfo> roleManagerList = roleManagerMapper.selectList(userTestWrapper);
时间: 2023-03-31 07:04:35 浏览: 146
这段代码可以进行一些优化,例如可以将 lambdaQuery() 方法的返回值存储在一个变量中,避免多次调用该方法;可以使用 StringUtils 的 isNotBlank() 方法代替 !StringUtils.isBlank();可以使用 lambda 表达式的 and() 方法将多个条件连接起来,避免多次调用 eq() 和 like() 方法。另外,可以考虑使用 MyBatis-Plus 提供的分页插件来实现分页查询,避免使用 PageHelper。
相关问题
LambdaQueryWrapper<Article> wrapper = Wrappers.<Article>lambdaQuery() .orderByDesc(Article::getCreateTime);什么意思
这段代码使用了 MyBatis-Plus 框架中的 LambdaQueryWrapper 来构建查询条件。LambdaQueryWrapper 是一个基于 Lambda 表达式的查询构造器,可以用于快速构建复杂的查询条件。
该代码中,创建了一个 LambdaQueryWrapper 对象,并指定了查询的实体类 Article。然后使用 orderByDesc 方法指定了查询结果按照 Article 实体类中 createTime 字段的降序排列。最终生成的 SQL 语句类似于:
```
SELECT * FROM article ORDER BY create_time DESC
```
其中,article 是实体对应的表名。
LambdaQueryWrapper<Room> wrapper = Wrappers.<Room>lambdaQuery();和 LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();的区别?
这两行代码的区别在于泛型类型不同,`Room` 和 `User` 分别是不同的实体类。另外,第一行代码中使用了静态方法 `Wrappers.lambdaQuery()`,而第二行代码中直接使用了 `LambdaQueryWrapper` 的构造方法。
`Wrappers.lambdaQuery()` 方法返回一个通用的 `Wrapper` 对象,而 `LambdaQueryWrapper` 则是 `Wrapper` 的一个实现类,用于构建查询条件。`LambdaQueryWrapper` 泛型参数中传入的是实体类类型,即 `Room` 或 `User`。
因此,第一行代码创建了一个 `Room` 实体类的查询条件对象,而第二行代码创建了一个 `User` 实体类的查询条件对象。