Mybatis_Plus学习用法一

时间:2019-08-31
本文章向大家介绍Mybatis_Plus学习用法一,主要包括Mybatis_Plus学习用法一使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

      今天主要上周写账户模块以及推广模块中的一部分做一下总结,作为一个新人,代码做的不够谨慎,很多部分是需要更改的(现在唯一目标是做到代码写的可以用,不许出先不规范),以下代码记录主要是改进过得代码。很感谢领导和同事的帮助。以下代码的改良主要他们帮助修改。感恩。

      接触到mybatis_Puls的时候是在开始做后台,由于项目经理打好模板的,我自己写了大量的SQL语句,这里也得到了批评,mybatis_Puls的优点减少大量的SQL。https://mp.baomidou.com/更多好处见此处官方。

@Override
public PageModel<List<CompanyRechargeComposeEntity>> findPage(CompanyRechargePageSearchEntity param) {
PageHelper.startPage(param.getPageNO(), param.getPageSize());
LambdaQueryWrapper<CompanyRecharge> queryWrapper = new QueryWrapper<CompanyRecharge>().lambda().orderByDesc(CompanyRecharge::getCreatedAt);
if (null != param && param.getStartDate() != null && param.getEndDate() != null) {
queryWrapper.between(CompanyRecharge::getCreatedAt, param.getStartDate(), param.getEndDate());

}
if (null != param && param.getCompanyId() != null) {
queryWrapper.eq(CompanyRecharge::getCompanyId, param.getCompanyId());
}
List<CompanyRecharge> list = baseMapper.selectList(queryWrapper);
PageInfo pageInfo = new PageInfo<>(list);
List<CompanyRechargeComposeEntity> result = new ArrayList<>();
if (null != list) {
List<CompanyContactEntity> companyList = companyService.findAll();
list.stream().map(cr -> {
CompanyRechargeComposeEntity crc = new CompanyRechargeComposeEntity();
BeanUtils.copyProperties(cr, crc);

for (CompanyContactEntity c : companyList) {
if (cr.getCompanyId().equals(c.getCompanyId())) {
crc.setCompanyName(c.getCompanyName());
}
}
result.add(crc);
return crc;
}).collect(Collectors.toList());

}
return PageModel.<List<CompanyRechargeComposeEntity>>builder().count((int) pageInfo.getTotal()).rows(result).build();
}

此方法是带有分页的查询方法。
LambdaQueryWrapper和Wrapper的区别:
今天做多条件查询的时候(并非在这个方法上,此处方法完全非本人改写):
LambdaQueryWrapper用于多条件查询比较方便:
LambdaQueryWrapper<BaiduAccountContact> queryWrapper = new QueryWrapper<BaiduAccountContact>().lambda();
if(StringUtils.isNotEmpty(param.getAdvertType())){
queryWrapper = queryWrapper.eq(BaiduAccountContact::getAdvertType,param.getAdvertType());
}
if(StringUtils.isNotEmpty(param.getBacName())){
queryWrapper = queryWrapper.eq(BaiduAccountContact::getBacName,param.getBacName());
}

Wrapper多条件查询的时候是需要多加判断。当进行多个条件同时筛选时,倒数第二个条件是会被最后的条件覆盖掉。

对象列表 - > 字符串列表,即:获取对象集合中所有的userName的集合。——map

  注意:stream().map( A::getXXX ) 等价于 stream().map(t -> t.getXXX)

aList.stream.map(...).collect(Collectors.toList())此处解释来源
https://www.cnblogs.com/pikachu-zhaof/p/9724826.html

以上对于循环遍历部分,当时领导说空闲时候写个分页,这样就不需要写循环遍历了,不是很明白,还是我会错了意?
public List<BaiduAccountComposeEntity> findAll() {
LambdaQueryWrapper<BaiduAccount> queryWrapper = new QueryWrapper<BaiduAccount>().lambda().orderByDesc(BaiduAccount::getCreatedAt);

List<BaiduAccount> list = baseMapper.selectList(queryWrapper);

List<BaiduAccountComposeEntity> result = new ArrayList<>();
if (null != list) {
List<BaiduAccountCampaign> baiduAccountCampaignList = baiduAccountCampaignService.findList();
if ( null !=baiduAccountCampaignList ){
result=list.stream().map(ba -> {
BaiduAccountComposeEntity bc = new BaiduAccountComposeEntity();
BeanUtils.copyProperties(ba, bc);
bc.setCampaignList(baiduAccountCampaignList.stream().filter(cam->cam.getAccountId().equals(ba.getAccountId())).collect(Collectors.toList()));
return bc;
}).collect(Collectors.toList());
}
}
return result;
}

标注部分主要是对集合存放的案例。

结尾:这次有点匆忙,公司有点吵。就不写自己的体会了,直接粘贴了在这部分代码。希望以后经常记下自己代码体会细节。









原文地址:https://www.cnblogs.com/study-code-he/p/11440390.html