SpringBoot整合Mybatis-Plus(补充)分页功能的实现与条件查询的实现

在这里要首先引入一个 mybatis-plus日志控制台输出

mybatis-plus:
 configuration:
   log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

分页功能的实现

首先需要在Mybatis-plus-config里面写一个分页插件

@Configuration
public class Mybatis_Plus_Config {
  
    /**
     * 分页插件
     */
    //旧版
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
    //新版
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        //1 创建MybatisPlusInterceptor拦截器对象
       MybatisPlusInterceptor mpInterceptor=new MybatisPlusInterceptor();
        //2 添加分页拦截器
        mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mpInterceptor;
    }
}
旧版的分页插件必须要特定的版本的依赖3.1.0,我这里使用的是
<!--        mybatis-plus核心库-->
        <dependency>
              <groupId>com.baomidou</groupId>
              <artifactId>mybatis-plus-boot-starter</artifactId>
              <version>3.1.0</version>
        </dependency>

controller控制层实现

/**
 * 分页查询的实现
 */
@Controller
@RequestMapping("/pagination")
public class MoviePageController {
    @Autowired
    private MovieDaoService movieDaoService;

    /**
     * IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper);
     * IPage:用来构建分页查询条件
     * Wrapper:用来构建条件查询的条件,目前我们没有可直接传为Null
     * IPage:返回值,你会发现构建分页条件和方法的返回值都是IPage
     */
    @RequestMapping("page")
    public void getInfoListPage(){
        //需要在Config配置类中配置分页插件
        IPage<Movie> page = new Page<>(1,3);
        movieDaoService.page(page,null);
        //3 获取分页结果
        System.out.println("当前页码值:"+page.getCurrent());//当前是多少页
        System.out.println("每页显示数:"+page.getSize());//每页显示数
        System.out.println("一共多少页:"+page.getPages());//显示数据有多少页
        System.out.println("一共多少条数据:"+page.getTotal());//总数据
        System.out.println("数据:"+page.getRecords());//当前页数据的显示
        //return page;
    }

    /**
     * default IPage<T> page(IPage<T> page) {
     *         return this.page(page, Wrappers.emptyWrapper());
     *     }
     * @return
     */
    @RequestMapping("/getInfoListPage")
    public IPage<Movie> getInfoListPageTwo(){
        //需要在Config配置类中配置分页插件
        IPage<Movie> page = new Page<>();
        page.setCurrent(1); //当前页
        page.setSize(3);    //每页条数
        page = movieDaoService.page(page);
        return page;
    }

}

结果展示

1.

 2.

条件查询构造

controller控制层实现

/**
 * 条件查询构建
 */
@Controller
@RequestMapping("/conditions")
public class MovieConditionController {
    @Autowired
    private MovieDaoService movieDaoService;

    @RequestMapping("/getlist")
    public List<Movie> getList(){
        /**
         * 单一条件查询
         * 投资金额小于20的电影信息
         */
        /**
         *  第一种:QueryWrapper
         */
        //QueryWrapper queryWrapper=new QueryWrapper();
        //queryWrapper.lt("money",20);
        /**
         * 第二种QueryWrapper的基础上使用lambda
         * 但是qw后面多了一层lambda()调用
         */
        //QueryWrapper<Movie> queryWrapper=new QueryWrapper<Movie>();
       // queryWrapper.lambda().lt(Movie::getMoney, 20);//添加条件
        /**
         * 解决了上一种方式存在的问题
         *第三种LambdaQueryWrapper
         */
        //LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
        //queryWrapper.lt(Movie::getMoney, 20);
        /**
         * 多条件查询
         * 查询投资金额大于18,小于25的电影信息
         */
//        LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
//        queryWrapper.lt(Movie::getMoney, 25);
//        queryWrapper.gt(Movie::getMoney, 18);
        /**
         * 等值查询
         * 这里设定只有导演和电影类型与数据库信息相匹配,才能查找到对应信息
         */
//        LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
//         queryWrapper.eq(Movie::getAuthor,"乌尔善").eq(Movie::getType,"神话、动作");
        /**
         *范围查询
         * 这里查询投资金额在14到20的电影信息
         */
//        LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
//        queryWrapper.between(Movie::getMoney,14,20);
        /**
         * 模糊查询
         * 这里查询以“假”开头的电影名称,由此查询到其相关的电影信息
         * like():前后加百分号,如 %J%
         * likeLeft():前面加百分号,如 %J
         * likeRight():后面加百分号,如 J%
         */
//        LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();
//        queryWrapper.likeRight(Movie::getName,"假%");
        /**
         * 排序查询
         * 这里根据id进行降序查询
         * condition :条件,返回boolean,
         * 当condition为true,进行排序,如果为false,则不排序
         *  isAsc:是否为升序,true为升序,false为降序
         *  columns:需要操作的列
         */
        LambdaQueryWrapper<Movie> queryWrapper = new LambdaQueryWrapper<Movie>();

        queryWrapper.orderBy(true,false,Movie::getId);
        List<Movie> movieList=movieDaoService.list(queryWrapper);
        return movieList;
    }

}

 结果展示

数据库显示

查询链接

单一条件查询:

多条件查询

等值查询 

范围查询

模糊查询

排序查询 

 SpringBoot图标和Mybatis-plus图标的取消

springBoot图标

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.7.15)

Mybatis-plus图标

 _ _   |_  _ _|_. ___ _ |    _ 
| | |\/|_)(_| | |_\  |_)||_|_\ 
     /               |         
                        3.1.0 

取消图标在application.yml里面书写

spring:
   main:
        banner-mode: off # 关闭SpringBoot启动图标(banner)

mybatis-plus:
   global-config:
          banner: off # 关闭mybatisplus启动图标

结语:

其他的代码在SpringBoot整合Mybatis-plus(基础)_冰鲜柠檬汁的博客-CSDN博客


 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值