• LambdaQueryWrapper 的常用方法


    25、LambdaQueryWrapper 的常用方法:

    idea背景图片,有需要自行下载:图片链接

    1、查看项目中是否导入mybatisPlus的jar包

    在这里插入图片描述

    2、servie 层和实现类要集成mybatisPlus的;

    service 继承IService<>

    在这里插入图片描述

    实现类中要继承IService的实现类ServiceImpl

    在这里插入图片描述

    3、如果你想要mapper中的一些方法的话,mapper 要继承BaseMapper<实体类>

    在这里插入图片描述

    4、可以在实现类中写方法了,不需要在xml中写一个方法了,常用的方法总结如下:

    1)、分页

    参数1是分页起始位置,一般是1,参数2:结束位置,    一般都是前端传过来的,查询的数量
    Page page1 = new Page(参数1,参数2);
    LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
    条件 eq 指的是相等
    queryWrapper.eq(LandLossAllowance::getCountrySide,landLossAllowanceOption.getCountrySide());
    执行page方法 page(参数1,参数2)
        参数1:上面的new的分页对象,参数2是lambda表达式查询条件
    IPage iPage = page(page1, queryWrapper);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    PageHelper和IPage区别:

    使用方法: PageHelper.startPage()然后后边写sql就可以。 紧接着的一个sql起作用。
    IPage则需要在dao层传入IPage的实现类Page对象,该对象实现了IPage。

    区别:

     PageHelper内部原理是将传入的页码和条数赋值给了Page对象,保存到了一个本地线程ThreadLoacl中,然后会进入Mybatis的拦截器中。
        然后再拦截器中获取本地线程中保存的分页的参数。最后再将这写分页参数和原本的sql以及内部定义好的sql进行拼接完成sql的分页处理。
        中间会进行判断该sql 的类型是查询还是修改操作。如果是查询才会进入分页的逻辑并判断封装好的Page对象是否是null,null则不分页,否则分页。
    
    IPage内部原理也是基于拦截器,但是这个拦截的是方法以及方法中的参数,这个也会判断是否是查询操作。如果是查询操作,才会进入分页的处理逻辑。
    进入分页逻辑处理后,拦截器会通过反射获取该方法的参数进行判断是否存在IPage对象的实现类。如果不存在则不进行分页,存在则将该参数赋值给IPage对象。
    然后进行拼接sql的处理完成分页操作。
    但是使用IPage需要注入一个bean拦截器交给spring进行管理。如下。否则不会进行拦截。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    使用Ipage之后,需要注入一些配置:

    @Configuration
    @MapperScan(value={"com.lingxu.**.mapper*"})
    public class MybatisPlusConfig {
    
        /**
             *  分页插件
         */
        @Bean
        public PaginationInterceptor paginationInterceptor() {
            // 设置sql的limit为无限制,默认是500
            return new PaginationInterceptor().setLimit(-1);
        }
        
       
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2、常用的lambda表达式的一些定义

    在这里插入图片描述

    平常在代码中还是要经常的使用,减轻工作量

  • 相关阅读:
    戏说领域驱动设计(八)——边界
    首尔市立大学经营学专业介绍,柯桥留学韩语培训
    SaaSBase:什么是FlowUs?
    免杀对抗-宏免杀
    数仓学习笔记(2)——业务数据采集
    关于聚合函数的课后作业
    协议和分层次
    2022年6月1日启动-蓝图功能C++初级编程教学重置计划启动
    Vue路由
    无线传感器网络:传输层
  • 原文地址:https://blog.csdn.net/web15185420056/article/details/126034417