MyBatisPlus_查询分页篇_入门试炼_02
文章目录
- 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相关推荐
- MyBatisPlus_通用service篇_入门试炼_05
文章目录 1. service和impl 2. 实战 1. service和impl package com.gblfy.springboot.mybatisplus.service;import c ...
- MyBatisPlus_查询篇_入门试炼_01
文章目录 1.数据库 Schema 脚本如下: 2.数据库 Data 脚本: 3. 实战 现有一张 User 表,其表结构如下: id name age email 1 Jone 18 test1@g ...
- MyBatisPlus_删除篇_入门试炼_04
文章目录 1. 实战删除 1. 实战删除 package com.gblfy.springboot.mybatisplus.mapper;import com.baomidou.mybatisplus ...
- TortoiseGit 本地仓库和远程仓库建立联系_入门试炼_02
TortoiseGit 简介: TortoiseGit 简称 tgit, 中文名海龟Git.TortoiseGit是一个开放的GIT版本控制系统的源客户端. 文章目录 一.前提准备 1.1. 生成秘钥 ...
- MyBatisPlus_AR篇_入门试炼_06
文章目录 1. 实体类 2. 实战 1. 实体类 原则:继承Model package com.gblfy.springboot.mybatisplus.entity;import com.baomi ...
- TortoiseGit 单文件版本对比_入门试炼_09
文章目录 一.单文件版本数据模拟 二.单文件版本对比 2.1. 查询单文件提交记录 2.2. 单文件版本之间差异对比 案例场景: 依次提交5次,推送远程,同一个文件5个版本之间的相互对比 一.单文件版 ...
- 用Jenkins自动化搭建测试环境_jenkins基础搭建_入门试炼02
Jenkins基础: 本篇介绍Jenkins的安装.Jenkins中的常用插件的安装方法.Jenkins用户配置以及提醒邮件的配置. 接上一篇:使用Jenkins搭建自动化测试环境_环境准备_入门试炼 ...
- RabbitMQ的5种队列_简单队列_入门试炼_第4篇
Statement 文章目录 一.队列总览 1.1. 图示 1.2. 说明 二.简单队列 2.1. 图示 2.2. 导入RabbitMQ的客户端依赖 2.3. 获取MQ的连接 2.4. 生产者发送消息 ...
- Guns根据条件查询数据_入门试炼04
一.找到Controler,对方法进行修改即可实现 二.修改list方法 修改钱的方法: /*** 获取房屋管理列表**wrapper 条件*/@RequestMapping(value = &quo ...
最新文章
- [problem]快速排序和归并排序
- Matplotlib实例教程(十五) 3D散点图
- java 中的 Scanner
- 于敦德:途牛五大战略纵深不惧同质化竞争
- ArrayList如何对某个对象的日期属性排序?
- 如何使用易我数据恢复向导恢复数码相机删除的图片
- 【OpenCV 例程200篇】43. 图像的灰度变换(对数变换)
- VS2010+Opencv249 图像叠加 添加水印
- mysql增删改查_MySQL的基本使用——简单的增删改查
- mac vim 配置文件
- 实用ExtJS教程100例-001:开天辟地的Hello World
- 为什么数据结构中Linklist p等价于LNode *p
- 小程序云开发实现上传图片功能
- matlab画gds图,Matlab GDS流程.doc
- 全球营商环境报告及数据(2004-2020年)
- BUUCTF解题十一道(04)
- 便利贴--17{移动端滑动模块}
- 投入Html5的怀抱,最近在研究的Egret
- 计算机网络冲刺串讲,计算机应用基础串讲冲刺讲义(二)
- WebRTC中AECM算法简介
热门文章
- 小米平板android最新版本,想要翻身还需努力 小米平板2安卓版评测
- (pytorch-深度学习系列)pytorch实现多层感知机(手动定义模型)对Fashion-MNIST数据集进行分类-学习笔记
- sparkStreaming连接kafka整合hbase和redis
- java多线程之生产者和消费者问题
- Elasticsearch Painless Script详解
- HBase BlockCache系列 - 探求BlockCache实现机制
- SSD+caffe︱Single Shot MultiBox Detector 目标检测+fine-tuning(二)
- 科学地花钱:基于端智能的在线红包分配方案
- 蚂蚁金服OceanBase性价比是传统数据库的十倍
- 人工智能和机器学习的前世今生