文章目录

  • 1. mapper接口
  • 2. 映射文件
  • 3. 实战分页

1. mapper接口

package com.gblfy.springboot.mybatisplus.mapper;import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gblfy.springboot.mybatisplus.entity.User;
import org.apache.ibatis.annotations.Param;import java.util.List;public interface UserMapper extends BaseMapper<User> {/*** 查询所有 有条件会自动拼接在where 后边当条件  单表操作** @param wrapper* @return*///自定义sql  无分页List<User> selectAll(@Param(Constants.WRAPPER) Wrapper<User> wrapper);/*** 查询所有 有条件会自动拼接在where 后边当条件 单表操作** @param page* @param wrapper* @return*///自定义sql  分页IPage<User> selectUserPage(Page<User> page, @Param(Constants.WRAPPER) Wrapper<User> wrapper);/*** 源码分析:* 根据 entity 条件,查询全部记录(并翻页)** @param page         分页查询条件(可以为 RowBounds.DEFAULT)* @param queryWrapper 实体对象封装操作类(可以为 null)*/
//    <E extends IPage<T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
}

2. 映射文件

<?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.gblfy.springboot.mybatisplus.mapper.UserMapper"><select id="selectAll" resultType="com.gblfy.springboot.mybatisplus.entity.User">select * from user ${ew.customSqlSegment}</select><select id="selectUserPage" resultType="com.gblfy.springboot.mybatisplus.entity.User">select * from user ${ew.customSqlSegment}</select></mapper>

3. 实战分页

package com.gblfy.springboot.mybatisplus.mapper;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gblfy.springboot.mybatisplus.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.List;@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
@Slf4j
public class UserSelectPageTest {@Autowiredprivate UserMapper userMapper;/*** myabtis 实现的分页为什么还要分页插件?* <p>* 1.mybatis实现得分页时逻辑分页或者叫做内存分页不是物理分页* 2.他是把符合条件的数据全部查询出来放到内存中,然后返回你需要的那部分* 3.表中数据不多时,可以使用,速度慢一些;当数据量大时,建议使用物理分页*/@Testpublic void selectPage() {QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.ge("age", 26);//总页数+总记录数Page<User> page = new Page<>(1, 2);IPage<User> iPage = userMapper.selectPage(page, queryWrapper);System.out.println("总页数:" + iPage.getPages());System.out.println("总记录数:" + iPage.getTotal());}
//--------------------------------自定义分页-----------------------------------/*** 其实就是按照MybatisPlus定义好的分页模板,把咱们的实体放进去*/@Testpublic void selectMyPage() {QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.ge("age", 26);//总页数+总记录数Page<User> page = new Page<>(1, 2);//调用自定义sqlIPage<User> iPage = userMapper.selectUserPage(page, queryWrapper);System.out.println("总页数:" + iPage.getPages());System.out.println("总记录数:" + iPage.getTotal());List<User> userList = iPage.getRecords();userList.forEach(System.out::println);}/*** 源码分析:* 根据 entity 条件,查询全部记录(并翻页)** @param page         分页查询条件(可以为 RowBounds.DEFAULT)* @param queryWrapper 实体对象封装操作类(可以为 null)*/
//    <E extends IPage<T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);//    多表操作/*** 多表操作:* 原则:* 把多表操作的内容放到xml映射的sql中** 1.在xml文件中书写多表操作的sql语句* 2.在mapper接口中,定义接口* 3.客户端(controller)调用即可*/
}

MyBatisPlus_查询分页篇_入门试炼_02相关推荐

  1. MyBatisPlus_通用service篇_入门试炼_05

    文章目录 1. service和impl 2. 实战 1. service和impl package com.gblfy.springboot.mybatisplus.service;import c ...

  2. MyBatisPlus_查询篇_入门试炼_01

    文章目录 1.数据库 Schema 脚本如下: 2.数据库 Data 脚本: 3. 实战 现有一张 User 表,其表结构如下: id name age email 1 Jone 18 test1@g ...

  3. MyBatisPlus_删除篇_入门试炼_04

    文章目录 1. 实战删除 1. 实战删除 package com.gblfy.springboot.mybatisplus.mapper;import com.baomidou.mybatisplus ...

  4. TortoiseGit 本地仓库和远程仓库建立联系_入门试炼_02

    TortoiseGit 简介: TortoiseGit 简称 tgit, 中文名海龟Git.TortoiseGit是一个开放的GIT版本控制系统的源客户端. 文章目录 一.前提准备 1.1. 生成秘钥 ...

  5. MyBatisPlus_AR篇_入门试炼_06

    文章目录 1. 实体类 2. 实战 1. 实体类 原则:继承Model package com.gblfy.springboot.mybatisplus.entity;import com.baomi ...

  6. TortoiseGit 单文件版本对比_入门试炼_09

    文章目录 一.单文件版本数据模拟 二.单文件版本对比 2.1. 查询单文件提交记录 2.2. 单文件版本之间差异对比 案例场景: 依次提交5次,推送远程,同一个文件5个版本之间的相互对比 一.单文件版 ...

  7. 用Jenkins自动化搭建测试环境_jenkins基础搭建_入门试炼02

    Jenkins基础: 本篇介绍Jenkins的安装.Jenkins中的常用插件的安装方法.Jenkins用户配置以及提醒邮件的配置. 接上一篇:使用Jenkins搭建自动化测试环境_环境准备_入门试炼 ...

  8. RabbitMQ的5种队列_简单队列_入门试炼_第4篇

    Statement 文章目录 一.队列总览 1.1. 图示 1.2. 说明 二.简单队列 2.1. 图示 2.2. 导入RabbitMQ的客户端依赖 2.3. 获取MQ的连接 2.4. 生产者发送消息 ...

  9. Guns根据条件查询数据_入门试炼04

    一.找到Controler,对方法进行修改即可实现 二.修改list方法 修改钱的方法: /*** 获取房屋管理列表**wrapper 条件*/@RequestMapping(value = &quo ...

最新文章

  1. [problem]快速排序和归并排序
  2. Matplotlib实例教程(十五) 3D散点图
  3. java 中的 Scanner
  4. 于敦德:途牛五大战略纵深不惧同质化竞争
  5. ArrayList如何对某个对象的日期属性排序?
  6. 如何使用易我数据恢复向导恢复数码相机删除的图片
  7. 【OpenCV 例程200篇】43. 图像的灰度变换(对数变换)
  8. VS2010+Opencv249 图像叠加 添加水印
  9. mysql增删改查_MySQL的基本使用——简单的增删改查
  10. mac vim 配置文件
  11. 实用ExtJS教程100例-001:开天辟地的Hello World
  12. 为什么数据结构中Linklist p等价于LNode *p
  13. 小程序云开发实现上传图片功能
  14. matlab画gds图,Matlab GDS流程.doc
  15. 全球营商环境报告及数据(2004-2020年)
  16. BUUCTF解题十一道(04)
  17. 便利贴--17{移动端滑动模块}
  18. 投入Html5的怀抱,最近在研究的Egret
  19. 计算机网络冲刺串讲,计算机应用基础串讲冲刺讲义(二)
  20. WebRTC中AECM算法简介

热门文章

  1. 小米平板android最新版本,想要翻身还需努力 小米平板2安卓版评测
  2. (pytorch-深度学习系列)pytorch实现多层感知机(手动定义模型)对Fashion-MNIST数据集进行分类-学习笔记
  3. sparkStreaming连接kafka整合hbase和redis
  4. java多线程之生产者和消费者问题
  5. Elasticsearch Painless Script详解
  6. HBase BlockCache系列 - 探求BlockCache实现机制
  7. SSD+caffe︱Single Shot MultiBox Detector 目标检测+fine-tuning(二)
  8. 科学地花钱:基于端智能的在线红包分配方案
  9. 蚂蚁金服OceanBase性价比是传统数据库的十倍
  10. 人工智能和机器学习的前世今生