分页查询

分页查询在网页使用十分之多

  1. 原始的limit进行分页
  2. pageHelper第三方插件

    3. MP内置的分页插件

导入配置

如何使用,官网的代码如下

  1. //分页插件
  2. @Bean
  3. public PaginationInterceptor paginationInterceptor() {
  4. PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
  5. // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
  6. // paginationInterceptor.setOverflow(false);
  7. // 设置最大单页限制数量,默认 500 条,-1 不受限制
  8. // paginationInterceptor.setLimit(500);
  9. // 开启 count 的 join 优化,只针对部分 left join
  10. paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
  11. return paginationInterceptor;
  12. }

当然我们的代码用不了像这些默认500条的值,直接删除即可,简化后的代码如下

  1. //分页插件
  2. @Bean
  3. public PaginationInterceptor paginationInterceptor() {
  4. return new PaginationInterceptor();
  5. }

怎样分页

直接使用page对象即可

  1. //测试分页查询
  2. @Test
  3. public void testPage(){
  4. //参数1:当前页
  5. //参数2:页面大小
  6. Page<Air> airPage = new Page<>(1,3);
  7. airMapper.selectPage(airPage,null);
  8. airPage.getCurrent();
  9. airPage.getRecords().forEach(System.out::println);
  10. }

分页查询

分页查询在网页使用十分之多

  1. 原始的limit进行分页
  2. pageHelper第三方插件
  3. MP内置的分页插件

导入配置

如何使用,官网的代码如下

  1. //分页插件
  2. @Bean
  3. public PaginationInterceptor paginationInterceptor() {
  4. PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
  5. // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
  6. // paginationInterceptor.setOverflow(false);
  7. // 设置最大单页限制数量,默认 500 条,-1 不受限制
  8. // paginationInterceptor.setLimit(500);
  9. // 开启 count 的 join 优化,只针对部分 left join
  10. paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
  11. return paginationInterceptor;
  12. }

当然我们的代码用不了像这些默认500条的值,直接删除即可,简化后的代码如下

  1. //分页插件
  2. @Bean
  3. public PaginationInterceptor paginationInterceptor() {
  4. return new PaginationInterceptor();
  5. }

怎样分页

直接使用page对象即可

  1. //测试分页查询
  2. @Test
  3. public void testPage(){
  4. //参数1:当前页
  5. //参数2:页面大小
  6. Page<Air> airPage = new Page<>(1,3);
  7. airMapper.selectPage(airPage,null);
  8. airPage.getCurrent();
  9. airPage.getRecords().forEach(System.out::println);
  10. }

MP删除操作

基本删除

  1. //测试删除
  2. @Test
  3. public void testDeleteById(){
  4. System.out.println(airMapper.deleteById(1L));
  5. }

批量删除

  1. //测试删除
  2. @Test
  3. public void testDeleteBatchId(){
  4. System.out.println(airMapper.deleteBatchIds(Arrays.asList(1,2,3)));
  5. }

根据map删除

  1. //测试删除
  2. @Test
  3. public void testDeleteByMap(){
  4. HashMap<String,Object> airMap = new HashMap<>();
  5. airMap.put("id",4);
  6. airMap.put("id",5);
  7. System.out.println(airMapper.deleteByMap(airMap));
  8. }

逻辑删除

物理删除: 从数据库中直接移除

逻辑删除: 在数据库中没有被移除,而是通过一个变量让他失效!(deleted = 0 -> deleted = 1)

管理员可以查看被删除的记录!防止数据丢失,类似于回收站

测试一下:

  1. 在数据库表中添加一个字段

  2. 在实体类中也添加一个字段

  3. 配置
  1. #配置日志
  2. mybatis-plus:
  3. configuration:
  4. log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #仅控制台输出的日志
  5. global-config:
  6. db-config:
  7. logic-delete-field: flag # 全局逻辑删除的实体字段名,如果实体类上字段加过@TableLogic
  8. # 就不需要配置这个,如果配置了默认也不会读取yml里的,而是属性上的注解
  9. logic-delete-value: 1 # 逻辑已删除值(默认为 1)
  10. logic-not-delete-value: 0

测试删除

实际上逻辑删除就是更新操作

这个时候如果执行查询等操作是无法查询出来的,因为会在查询条件中会自动拼接deleted = 0的条件

  1. //测试逻辑删除
  2. @Test
  3. public void testDeleteByLogic(){
  4. HashMap<String,Object> airMap = new HashMap<>();
  5. airMap.put("id",4);
  6. System.out.println(airMapper.deleteByMap(airMap));
  7. }

以上所有CRUD(加上我的上一篇)

https://www.cnblogs.com/chougoushi/p/13438912.html"MyBatisPlus配置日志,CRUD的使用"

都是必须要掌握的,多加练习

MyBatisPlus分页查询,删除操作的更多相关文章

  1. mybatis-plus分页查询

    在springboot中整合mybatis-plus 按照官方文档进行的配置:快速开始|mybatis-plus 引入依赖: <!-- 引入mybatisPlus --> <depe ...

  2. 关于 MyBatis-Plus 分页查询的探讨 → count 都为 0 了,为什么还要查询记录?

    开心一刻 记得上初中,中午午休的时候,我和哥们躲在厕所里吸烟 听见外面有人进来,哥们猛吸一口,就把烟甩了 进来的是教导主任,问:你们干嘛呢? 哥们鼻孔里一边冒着白烟一边说:我在生气 环境搭建 依赖引入 ...

  3. 关于asp.net假分页的删除操作的随笔

    作为一个新人,上周负责优化一个后台管理系统,遇到一个问题:点击删除按钮之后,页面又回到了第一页. 而我需要达到的效果是:点击了删除按钮之后,原来是那一页,删除后还是在那一页. 由于项目是已经验收了的, ...

  4. Redis 模糊查询删除操作

    创建一条测试 数据 查询 创建:set name xiaoming 查询: get name 1.模糊搜索查询 Redis 模糊搜索 keys * 2.删除指定key : # 删除所有以user开头的 ...

  5. mybatis-plus 分页查询+ dao层抽象

    1.配置文件添加paginationInterceptor @Configuration @MapperScan("fama.cost.*.mapper") public clas ...

  6. java jdbc 同时操作查询删除操作

    Connection conn = null;        try {            // 创建连接实例            conn = JdbcUtility.GetFactory() ...

  7. 用Hibernate和Struts2+jsp实现分页查询、修改删除

    1.首先用get的方法传递一个页数过去 2.通过Struts2跳转到Action 3.通过request接受主页面index传过的页数,此时页数是1, 然后调用service层的方法获取DAO层分页查 ...

  8. OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)

    公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...

  9. Mybatis-plus之RowBounds实现分页查询

    物理分页和逻辑分页 物理分页:直接从数据库中拿出我们需要的数据,例如在Mysql中使用limit. 逻辑分页:从数据库中拿出所有符合要求的数据,然后再从这些数据中拿到我们需要的分页数据. 优缺点 物理 ...

随机推荐

  1. 导出Telegram贴纸

    如何导出Telegram的贴纸1.在Telegram中 @StickerSetBot 机器人2.输入 /newpack 开启机器人,会提示 OK now send me stickers or sti ...

  2. Shell基本语法---处理海量数据的grep命令

    grep命令 shell脚本三剑客之一 grep应用场景:通常对数据进行 行的提取 语法:grep [选项] [内容] [file] -v 对内容进行取反提取 -n 对提取的内容显示行号 -w 精确匹 ...

  3. xilinx fpga中块ram的使用——简单双端口ram的使用

    在简单双端口ram中最简单有9个端口:分别是 clka  为输入端口的时钟 wea  读写控制端,高为写,低为读 addra 写地址 dina  待写入的数据 clkb 为输出端口的时钟的 addrb ...

  4. 网络流(dinic算法)

    洛谷p3376 https://www.luogu.com.cn/problem/P3376 #include <iostream> #include <cstdio> #in ...

  5. Split Screen

    Split Screen 是一个用来分屏的 bookmarklet 程序. 它通过 javascript 通信协议实现[1]. 特点 使用 HTML5 <dialog> 元素实现 使用 G ...

  6. vue学习(六) 事件修饰符 stop prevent capture self once

    //html <div id="app"> <div @click="divHandler" style="height:150px ...

  7. 小白入门python新手教程python

    python教程很多,但是需要自学教程更好一些,看自学python教程3遍,然后一步步操作,7天后就会有很大的收货. 要向数据处理方向走,数据处理需要网络爬虫的知识,且更加精进.下面是我从网上查找这方 ...

  8. shell 中的${},##, %% , :- ,:+, ? 的使用

    假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个/ 及其左边的字符串:dir1/dir2 ...

  9. lua中单引号和双引号和/的输出的问题

    lua单引号和双引号的问题 lua 中的 单引号 与 双引号 (" " 与 '') Lua除支持双引号("")表示字符串外, 也支持用单引号('') 注意: 如 ...

  10. Day02_IP地址详解&进制转换&DOS基本命令与批处理

    学于千峰教育开源课程 感谢 千峰教育官网 b站在线视频 IP地址详解 一.简单局域网的构成 局域网:一般称为内网 简单局域网的构成:交换机.网线.PC(其他IT终端) 交换机:用来组建内网的局域网的设 ...