LambdaQueryWrapper<DocBasicInfo> lambdaQueryWrapper = new LambdaQueryWrapper(); lambdaQueryWrapper.eq(StringUtil.isNotEmpty(wslx), DocBasicInfo::getWslx, wslx);
时间: 2023-08-19 13:33:50 浏览: 107
这段代码使用了 MyBatis-Plus 框架的 LambdaQueryWrapper 工具类,用于构造数据库查询条件。具体来说,它创建了一个 DocBasicInfo 对象的查询条件 lambdaQueryWrapper,然后通过 eq 方法添加了一个查询条件:如果 wslx 不为空,则查询 DocBasicInfo 表中 wslx 字段与 wslx 参数相等的记录。其中 DocBasicInfo::getWslx 表示获取 DocBasicInfo 对象的 wslx 属性值,这是使用了 Java 8 的方法引用语法。这段代码的作用是根据传入的 wslx 参数查询 DocBasicInfo 表中符合条件的记录。
相关问题
LambdaQueryWrapper<DocBasicInfo> lambdaQueryWrapper = new LambdaQueryWrapper(); lambdaQueryWrapper.eq(StringUtil.isNotEmpty(bh), DocBasicInfo::getBh, bh); List<DocBasicInfo> docBasicInfos = getBaseMapper().selectList(lambdaQueryWrapper);
这段代码也是使用了 MyBatis-Plus 框架的 LambdaQueryWrapper 工具类,用于构造数据库查询条件。具体来说,它创建了一个 DocBasicInfo 对象的查询条件 lambdaQueryWrapper,然后通过 eq 方法添加了一个查询条件:如果 bh 不为空,则查询 DocBasicInfo 表中 bh 字段与 bh 参数相等的记录。其中 DocBasicInfo::getBh 表示获取 DocBasicInfo 对象的 bh 属性值,这是使用了 Java 8 的方法引用语法。
最后,使用 getBaseMapper().selectList 方法执行查询操作,将符合条件的 DocBasicInfo 记录保存到 docBasicInfos 列表中。getBaseMapper() 方法返回一个 BaseMapper 对象,可以执行 MyBatis 的基本查询操作,例如 selectList、selectById 等。这段代码的作用是根据传入的 bh 参数查询 DocBasicInfo 表中符合条件的记录,并将查询结果保存到 docBasicInfos 列表中。
if (!StringUtil.isEmpty(idCard)) { LambdaQueryWrapper<UserExtend>queryWrapper=new LambdaQueryWrapper<>(); queryWrapper.eq(UserExtend::getIdcard,idCard); List<UserExtend> userList = userExtendMapper.selectList(queryWrapper); if (!CollectionUtils.isEmpty(userList)) { UserExtend userExtend = userList.get(0); String userId = userExtend.getUserId(); userExtend = queryExtendByUserId(userId); List<UserBase> userBases = userBaseMapper.selectUserBaseList(userId); if (!CollectionUtils.isEmpty(userBases)) { userExtend.setUserBase(userBases.get(0)); } return userExtend; } } 如何优化这段代码
根据代码的逻辑,可以将查询语句进行优化,减少查询次数,提高查询效率。可以将以下两个查询合并成一个:
```
LambdaQueryWrapper<UserExtend>queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(UserExtend::getIdcard,idCard);
List<UserExtend> userList = userExtendMapper.selectList(queryWrapper);
```
优化后的代码如下:
```
if (!StringUtil.isEmpty(idCard)) {
LambdaQueryWrapper<UserExtend> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(UserExtend::getIdcard, idCard);
List<UserExtend> userList = userExtendMapper.selectList(queryWrapper);
if (!CollectionUtils.isEmpty(userList)) {
UserExtend userExtend = userList.get(0);
String userId = userExtend.getUserId();
userExtend = queryExtendByUserId(userId);
List<UserBase> userBases = userBaseMapper.selectUserBaseList(userId);
if (!CollectionUtils.isEmpty(userBases)) {
userExtend.setUserBase(userBases.get(0));
}
return userExtend;
}
}
```
另外,可以考虑使用缓存来提高查询效率,如果用户数据不经常更新,可以将查询结果缓存到内存中,下一次查询时直接从内存中获取。
阅读全文