开发者

Mybatis-plus查询语句加括号(.or(),.and())问题

目录
  • MyBATis-plus查询语句加括号(.or(),.and())
    • Java代码
    • 等价sql
  • mybatis plwww.devze.comus加括号实现分端查询
    • 举例
  • 总结

    Mybatis-plus查询语句加括号(.or(),.and())

    java代码

    QueryWrapper<Entity> wrapper = new QueryWrapper<>();
    wrapper.ne("id", param.getId())
    wrapper.and(QueryWrapper -> QueryWrapper.eq("name", name).or().eq("mark", mark)); 
    entityMapper.selectList(wrapper);

    等价sql

    SELECT id FROM t_entity WHERE (id <> ? AND (name = ? OR mark = ?))

    每个and相当于一个括号

    mybatis plus加括号实现分端查询

    LambdaQueryWrapper<实体类> wrapper = new LambdaQueryWrapper<>();
    • wrapper.eq(实体类::字段名,参数)
    • .and(条件,pr -> pr.like(实体类::字段名,参数)
    • .or(条件).like(实体类::字段名,参数));

    举例

    LambdaQueryWrapper<Entity> lambdaQueryWrapper = new LambdaQueryWrapper();
    lambdaQueryWrapper.eq(Entity::getStatus, BaseServiceConstants.STATUS_0)
            .like(StringUtils.isNotEmpty(busiInfo.getName()) && !appFlag, Entity::getName, busiInfo.getName())
            .like(StringUtils.isNotEmpty(bjsusiInfo.getSupervisor()) && !appFlag, Entity::getSupervisor, busiInfo.getSupervisor())
            .eq(StringUtils.isNotEmpty(busiInfo.getCode()), Entity::getCode, busiInfo.getCode())
            .and(StringUtils.ishttp://www.devze.comNotEmpty(busiInfo.getName()) && appFlag, pr -> pr .like( Entity::getName, busiInfo.getName())
                 python   .or().like(Entity::getSupervisor, busiInfo.getName()));

    通过定义boolean变量  appFlag 来区别查询来自PC还是APP端,APP端实现单一参数多对应查询

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜