mybatis-plus分页查询(springboot中实现单表和多表查询)

这篇具有很好参考价值的文章主要介绍了mybatis-plus分页查询(springboot中实现单表和多表查询)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、mybatis-plus单表查询

使用mybatis-plus实现单表分页查询 非常方便,主要操作步骤如下:

  1. 配置分页查询拦截器
  2. 进行分页查询

1.首先,打开mybatis-plus官网的插件(插件主体)
或者点击mybatis-plus插件
mybatis-plus分页查询(springboot中实现单表和多表查询)

我是配置在springboot项目中,所以找到springboot的分页配置

mybatis-plus分页查询(springboot中实现单表和多表查询)

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        return interceptor;
    }

2.配置分页查询拦截器

  • 分页查询拦截器装载到springboot容器中

在项目中新建config目录,该配置目录下新建 分页配置类PageConfig
mybatis-plus分页查询(springboot中实现单表和多表查询)

package com.sangeng.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration //定义配置类,类内部包含 被@Bean注解的方法,被相关类扫描,并用于构建bean定义,初始化Spring容器。
public class PageConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        return interceptor;
    }
}

3.测试类中测试分页

  • 分页对象page,设置相关的分页信息 (最终也可以从分页对象中获取分页信息)
  • 调用分页方法
    @Test
    public void testPage(){
        //查询第一页,每页显示2条记录
        IPage<User> page = new Page<>(); //page 分页对象,设置相关的分页信息
        //设置每页条数 即pageSize
        page.setSize(2);
        //设置查询第几页 即pageNum
        page.setCurrent(1);
        userMapper.selectPage(page, null);// queryWrapper设置查询条件null

        // 查询后的结果 会 返回到page中
        System.out.println(page.getRecords()); //当前页面的 数据
        System.out.println(page.getTotal());   //获取总记录数(数据库目前一共5条记录)
        System.out.println(page.getCurrent()); //获取当前页码 (第1页)
    }

debug调试说明
mybatis-plus分页查询(springboot中实现单表和多表查询)
:分页后的内容,以及相关参数(当前页码,每页条数,总记录数)都可以从分页对象page中拿到,方便后面使用。

二、mybatis-plus多表查询

2.1多表查询SQL语句

在xml中不需要关心分页操作,mybatis-plus会帮我们完成

查orders表所有属性 + user表的一个属性user_name

SELECT 
	o.*,u.`user_name`
FROM 
	USER u,orders o
WHERE 
	o.`user_id` = u.`id`

mybatis-plus分页查询(springboot中实现单表和多表查询)
mybatis-plus分页查询(springboot中实现单表和多表查询)
mybatis-plus分页查询(springboot中实现单表和多表查询)
2.2 定义一个实体类Orders
属性包含orders表所有属性 + user表的一个属性user_name
mybatis-plus分页查询(springboot中实现单表和多表查询)
2.3定义OrdersMapper接口,xml写SQL语句
mapper接口中的方法的 第一个参数定义成Page类型
mybatis-plus分页查询(springboot中实现单表和多表查询)

package com.sangeng.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sangeng.domain.Orders;

public interface OrdersMapper extends BaseMapper<Orders> {
   //要实现自定义分页,修改 返回类型IPage<?> + 参数类型 Page<?>    ?改成实体类Orders
   IPage<Orders> findAllOrders(Page<Orders> page);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sangeng.mapper.OrdersMapper">

<!--    在xml中不需要关心分页操作,mybatis-plus会帮我们完成-->
    <select id="findAllOrders" resultType="com.sangeng.domain.Orders">
        SELECT
            o.*, u.user_name
        FROM `user` u, orders o
        WHERE o.id = u.id
    </select>

</mapper>

2.4调用方法测试
mybatis-plus分页查询(springboot中实现单表和多表查询)文章来源地址https://www.toymoban.com/news/detail-482479.html

 	@Autowired
    private OrdersMapper ordersMapper;
    @Test
    public void testOrdersPage(){
        Page<Orders> page = new Page<>();
        //设置每页大小
        page.setSize(2);
        //设置当前页码
        page.setCurrent(2);
        ordersMapper.findAllOrders(page);
        System.out.println(page.getRecords());
        System.out.println(page.getTotal());
    }

到了这里,关于mybatis-plus分页查询(springboot中实现单表和多表查询)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MyBatis-Plus分页查询(快速上手运用)

    Mybatis-Plus知识点[MyBatis+MyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客   Mybatis-Plus+SpringBoot结合运用_心态还需努力呀的博客-CSDN博客 MyBaits-Plus中@TableField和@TableId用法_心态还需努力呀的博客-CSDN博客 MyBatis-Plus中的更新操作(通过id更新和条件更新)_心态还需努力呀的博

    2024年02月16日
    浏览(39)
  • mybatis-plus分页查询三种方法

    说明: 1、mybatis-plus中分页接口需要包含一个IPage类型的参数。 2、多个实体参数,需要添加@Param参数注解,方便在xml中配置sql时获取参数值。 注意这里我虽然加了@Param但是我并没有使用 这是控制台打印的查询语句,大家发现最后的LIMIT 函数没,正常来说mybatis-plus里是没有写

    2024年01月25日
    浏览(60)
  • mybatis-plus 多表关联条件分页查询

    此处以一对多,条件分页查询为例: 主表 明细表 0.请求dto 1.Controller 层: 注:我的项目中进行了service 读写分类配置,实际使用中,直接使用mybatis-plus中的 IUserService 对应的接口就行。 2.service 层 service impl实现层: 3.mapper 层 4.mapper.xml层 5.测试: 结果body: Q:todo page 分页会把

    2024年02月12日
    浏览(36)
  • Mybatis-Plus分页插件查询慢解决方案

    需求反馈前端界面查询速度很慢。 f12查看接口响应时间达到了5.47s。 查看后端代码逻辑,就是传了些参数,分页查询了一个列表的数据。分页插件使用的是mybatis-plus的分页插件,PaginationInterceptor。 把后端调用的sql单独拿出来在navicat中进行执行,才0.54s左右,其实很快了,数

    2024年02月11日
    浏览(44)
  • 窥探系列之Mybatis-plus XML分页查询

    Page类在mybatisPlus中用于分页查询,继承Pagination类,Pagination类的searchCount字段控制是否查询总记录数 顺着看哪里用到了searchCount: com.baomidou.mybatisplus.plugins.PaginationInterceptor 是mybatisPlus的一个插件,也就是说mybatis是通过插件的方式在分页的时候查询总数; 红圈中使用sql解析包

    2024年02月13日
    浏览(33)
  • springboot使用Mybatis-plus分页插件

    在  pom.xml   文件中添加 MyBatis Plus 和分页插件的依赖: 注意替换  {mybatis-plus-version}  为对应的版本号。 在 Spring Boot 的配置文件  application.yml   中添加分页插件的配置参数: 注意代码中的注释,其中   PaginationInterceptor  表示使用 MyBatis Plus 提供的分页插件。 在接口层使用

    2024年02月07日
    浏览(34)
  • spring boot集成mybatis-plus——Mybatis Plus 多表联查(包含分页关联查询,图文讲解)...

     更新时间 2023-01-03 21:41:38 大家好,我是小哈。 本小节中,我们将学习如何通过 Mybatis Plus 实现 多表关联查询 ,以及 分页关联查询 。 本文以 查询用户所下订单 ,来演示 Mybatis Plus 的关联查询,数据库表除了前面小节中已经定义好的用户表外,再额外创建一张订单表,然后

    2024年02月01日
    浏览(72)
  • SpringBoot 结合 mybatis-plus 实现分页功能

            要实现分页功能方法有很多,但最基本的实现原理都差不多,所以在实现功能之前要先把原理搞明白。正如删除有 “逻辑删除”  和 “物理删除\\\" 之分,分页也有 “逻辑分页” 和 “物理分页”; 1、逻辑分页:逻辑分页依赖于代码。(Mybatis自带的分页插件就是逻

    2024年02月06日
    浏览(31)
  • mybatis-plus技巧--动态表名-多语句-拼接sql--关于mybatis的mysql分页查询总数的优化思考

    传入tableName参数就可以了,不过只能用$不能用# 因为#会发生预编译,然后会在表名上加引号’\\\'。 新建一个表名拦截类实现TableNameHandler mybatisPlus添加插件 实例: 每天按统计 如果表名为count则加上今天的时间 每次设置 直接设置名字,然后就会改变的。 需要在配置文件中的

    2024年01月16日
    浏览(35)
  • Mybatis-Plus详解(新建maven项目、查询所有信息、打印SQL日志、实现CRUD(增删改查)、分页、条件查询且分页,前后端分离式开发)

    MyBatis-Plus(opens new window) (简称MP) 是一个MyBatis(opens new window)的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。想查看官网相关内容的化我这里提供了官网地址:https://baomidou.com/ 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般

    2024年02月04日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包