码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis_Plus学习用法一

时间:2019-08-31 21:45:51      阅读:858      评论:0      收藏:0      [点我收藏+]

标签:目标   utils   query   between   desc   set   orderby   override   dash   

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

      接触到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学习用法一

标签:目标   utils   query   between   desc   set   orderby   override   dash   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!