Mybatis-Plus模糊查询

1.模糊查询时,如果想把多个or当做一个条件比如
示例1:select * from table where age=20 and (level=1 or levle=2 or name=“shadiao”)
记得用andNew(),andNew()相当于新建了一个括号.

补充的小知识点:
示例2:select * from table where age=20 or level=1 or levle=2 or name="shadiao’’
这个示例2的sql里 age=20是一个充分不必要条件,而示例1的sql里age=20是个必要条件

2.如果andNew()后面跟了一个and;
比如

 dev.andNew().like("name",gateway.getDescription(), SqlLike.DEFAULT)
            .or().like("mac",gateway.getDescription(), SqlLike.DEFAULT)
            .or().like("ip",gateway.getDescription(), SqlLike.DEFAULT);
   dev.and().eq("organization_id",orgId);

这个orgId会加入andNew()的括号中,所以不要瞎用and
下面是个正确的示例

  @Override
    public Page<UnionGateway> findAllGateway(int currentPage, int pageSize, UnionGateway gateway, Users user) {


        //根据用户查询所属组织
        int orgId = user.getOrg();
        Page<UnionGateway> page = new Page<>(currentPage, pageSize);
        EntityWrapper<UnionGateway> dev = new EntityWrapper(gateway);
        dev.setEntity(new UnionGateway());

        //!"".equals(gateway.getDescription())
        if (null!=gateway.getDescription() && !gateway.getDescription().equals("") ){
            dev.andNew().like("name",gateway.getDescription(), SqlLike.DEFAULT)
            .or().like("mac",gateway.getDescription(), SqlLike.DEFAULT)
            .or().like("ip",gateway.getDescription(), SqlLike.DEFAULT);
        }


        if (null!=gateway.getType() && !gateway.getType().equals("")){
            dev.eq("type",gateway.getType());
        }
        if(!user.getRole().equals("susys")){
            dev.eq("organization_id",orgId);
        }
        dev.eq("is_delete",gateway.getIsDelete());
        dev.orderBy("create_time desc");
        Page<UnionGateway> getwayPage = iUnionGatewayService.selectPage(page, dev);
        return getwayPage;
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值