mybatis

您所在的位置:网站首页 mybatis与springboot mybatis

mybatis

2023-06-21 03:31| 来源: 网络整理| 查看: 265

一、mybatis-plus单表查询

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

配置分页查询拦截器进行分页查询

1.首先,打开mybatis-plus官网的插件(插件主体) 或者点击mybatis-plus插件 在这里插入图片描述

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

在这里插入图片描述

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

2.配置分页查询拦截器

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

在项目中新建config目录,该配置目录下新建 分页配置类PageConfig 在这里插入图片描述

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 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调试说明 在这里插入图片描述 注:分页后的内容,以及相关参数(当前页码,每页条数,总记录数)都可以从分页对象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`

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 2.2 定义一个实体类Orders 属性包含orders表所有属性 + user表的一个属性user_name 在这里插入图片描述 2.3定义OrdersMapper接口,xml写SQL语句 mapper接口中的方法的 第一个参数定义成Page类型 在这里插入图片描述

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 { //要实现自定义分页,修改 返回类型IPage + 参数类型 Page ?改成实体类Orders IPage findAllOrders(Page page); } SELECT o.*, u.user_name FROM `user` u, orders o WHERE o.id = u.id

2.4调用方法测试 在这里插入图片描述

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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3