Mybatis_Plus学习用法一

Posted study-code-he

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;


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

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









以上是关于Mybatis_Plus学习用法一的主要内容,如果未能解决你的问题,请参考以下文章

mybatis_plus简单学习

MybatisPlus 学习配置多数据源

MybatisPlus 学习配置多数据源

Mybatis_plus的一些介绍

Mybatis_plus 自动生成代码时因为下划线造成的问题

mybatis_plus代码生成器