本文目录

  • 一、Mybatis-Plus之查询操作
    • 1、查询操作常用API
    • 2、分页查询
      • 2.1、在配置类里注册分页插件
      • 2.2、直接使用MP内置的Page对象进行分页,测试代码如下
  • 二、Mybatis-Plus之删除操作
    • 1、物理删除操作常用API
    • 2、逻辑删除
      • 2.1、在数据库里增加deleted字段
      • 2.2、在实体类对应的属性上加上@TableLogic注解
      • 2.3、在配置类里注册逻辑删除组件
      • 2.4、在application.properties文件里配置已删除跟未删除用什么来表示
      • 2.5、测试逻辑删除

一、Mybatis-Plus之查询操作

1、查询操作常用API

根据ID查询测试代码如下:

//测试根据ID查询
@Test
public void testSelectById(){User user = userMapper.selectById(2L);System.out.println(user);
}

测试结果如下:


批量查询测试代码如下:

//测试批量查询
@Test
public void testSelectByBatchIds(){List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));users.forEach(System.out::println);
}

测试结果如下:


使用map进行条件查询测试代码如下:

//按条件查询之使用map操作
@Test
public void testSelectByMap(){Map map = new HashMap();map.put("name","哈利油");map.put("age",18);List list = userMapper.selectByMap(map);list.forEach(System.out::println);
}

测试结果如下:

2、分页查询

分页在项目里使用得十分多,平时一般是使用pageHelpr插件进行分页,还可以使用原始的limit进行分页;MP其实内置了分页插件,使用步骤如下:

2.1、在配置类里注册分页插件

//注册分页插件
@Bean
public PaginationInterceptor paginationInterceptor(){return new PaginationInterceptor();
}

2.2、直接使用MP内置的Page对象进行分页,测试代码如下

@Test
public void testPage(){//参数1:当前页,参数2:页面大小Page<User> page = new Page<>(1,5);//用于排序page.setDesc("id");IPage<User> userIPage = userMapper.selectPage(page, null);userIPage.getRecords().forEach(System.out::println);System.out.println(userIPage.getTotal());
}

测试结果如下:

二、Mybatis-Plus之删除操作

1、物理删除操作常用API

根据ID删除测试代码如下:

//测试删除
@Test
public void testDeleteById(){userMapper.deleteById(1L);
}

测试结果如下:


根据ID批量删除测试代码如下:

//通过id批量删除
@Test
public void testDeleteBatchId(){userMapper.deleteBatchIds(Arrays.asList(2L,3L));
}

测试结果如下:


使用map进行条件删除测试代码如下:

@Test
public void testDeleteMap(){Map map = new HashMap();map.put("name","哈利油");userMapper.deleteByMap(map);
}

测试结果如下:

2、逻辑删除

在工作中有时需要使用到逻辑删除,逻辑删除即数据在数据库里没有被移除,而是通过一个变量来让它失效;一般管理员可以查看被逻辑删除的数据,这样可防止数据的丢失,类似于回收站功能

MP逻辑删除使用步骤如下:

2.1、在数据库里增加deleted字段

2.2、在实体类对应的属性上加上@TableLogic注解

2.3、在配置类里注册逻辑删除组件

//注册逻辑删除组件
@Bean
public ISqlInjector sqlInjector(){return new LogicSqlInjector();
}

2.4、在application.properties文件里配置已删除跟未删除用什么来表示

mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

2.5、测试逻辑删除



MyBatis-Plus之select、delete相关推荐

  1. 懒人小工具1:winform自动生成Model,Insert,Select,Delete以及导出Excel的方法

       懒人小工具2:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法    github地址:https://github.com/Jimmey-Jiang/J ...

  2. java mysbatis select_java相关:详解Mybatis中的select方法

    java相关:详解Mybatis中的select方法 发布于 2020-7-3| 复制链接 摘记: selectById方法根据id,查询记录 ```java public void updateRe ...

  3. mysql之DML(SELECT DELETE INSERT UPDATE)

    DML:数据操作语言     INSERT     DELETE     SELECT     UPDATE SELECT:     SELECT SELECT-LIST FROM TBNAME|TB ...

  4. SpringBoot+Mybatis 框架之 @Select注解方式搭建

    最近两天在帮同学搭建SpringBoot框架,我以往使用的是xml映射文件的方式,这次我的同学要我使用@Select注解的方式搭建的一次.感觉挺有意思的,分享给大家. 1.创建SpringBoot项目 ...

  5. mybatis配置insert/update/delete同一个模板

    insert,update,delete标签只是一个模板,在操作时是以sql语句为核心的, 即在做增/删/改时,insert/update/delete便签可以通用, 但做查询时只能用 select ...

  6. MyBatis→优缺点、select延迟加载、接口式MyBatis编程、一级缓存、二级缓存、集成Redis自定义缓存、Log4j

    MyBatis优缺点 select延迟加载 接口式MyBatis编程 一级缓存 一级缓存原理 一级缓存命中原则 一级缓存销毁 一级缓存避免脏读不可重复读 一级缓存与spring@事务 二级缓存 与一级 ...

  7. MyBatis中@Insert,@Select,@Update,@Delect的使用

    实习中遇到了一个神奇的组件:MyBatis中的@Insert,@Select,@Update,@Delect 在实际开发生产中可以直接在dao层的实现类中添加注解,即可实现我们想要的增删改查操作: 代 ...

  8. mybatis mysql cursor_MySQL JDBC/MyBatis Stream方式读取SELECT超大结果集

    情景: 遍历并处理一个大表中的所有数据, 这个表中的数据可能会是千万条或者上亿条, 很多人可能会说用分页limit--但需求本身一次性遍历更加方便, 且Oracle/DB2都有方便的游标机制. 对DB ...

  9. 老司机学习MyBatis之如何通过select返回Map

    From: https://blog.csdn.net/Gaomb_1990/article/details/80638177 一.案例 当要查询的结果是一个Map的时候,这里分为两种情况: ①返回单 ...

  10. MyBatis select标签

    在 MyBatis 中,select 标签是最常用也是功能最强大的 SQL 语言,用于执行查询操作. select 示例语句如下. SELECT id,NAME,url FROM website WH ...

最新文章

  1. 【机器学习入门】(8) 线性回归算法:正则化、岭回归、实例应用(房价预测)附python完整代码和数据集
  2. 软考网络工程师身份证忘记领取啦怎么办
  3. ps随机排列_漂亮!自然材料:人工可控微米级胶体粒子“堆积木”——粒子随心所欲的组装排列!...
  4. Confluence 6 使用一个页面为站点的默认页面
  5. Docker系列教程02-MongoDB默认开启鉴权
  6. HTML/XHTML/HTML5/CSS学习链接
  7. 英文期刊催稿信模板_手把手教你写投稿信,另附查尔斯沃思高质量模板
  8. javascript Date
  9. 各种数据库的连接字符串
  10. hdu 1754 I hate it (线段树)
  11. 明清时期中央朝廷与地方关系中的江南著姓望族
  12. EF的基本了解(一)
  13. 微信小程序 文字下标_微信小程序开发中,怎么给导航栏图标下面加上文本?...
  14. 英伟达JETSON XAVIER NX使用小记
  15. open judge 1.7.18
  16. 移动端html网页真机调试,Mac端调试iphone移动端网页
  17. OneNav一为主题魔改教程(七):继续完善本地网址功能,重复的网址不让保存--洞五洞洞幺
  18. Vsearch免费替代收费版的usearch
  19. 输入一个字符,判断其是否为大写字母,如果是,将他转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
  20. DEDE(织梦)插件开发案例(一)

热门文章

  1. Jetson Nano复制系统和U盘启动【第三部分】
  2. Ubuntu安装mpich
  3. 计算机 拔电源 重启,电脑在关机就自动重新启动。但拔掉电源插头再关就又不会重新启动了。求高手帮忙!!!...
  4. 通过面试谈谈自己的一点感悟(只是个人的一点拙见)
  5. GHOST手动备份详细教程(图文)
  6. 慕容复的故事告诉我们:应试教育害死人
  7. 公摊面积取消闹乌龙,历史学家李学勤逝世,微软员工抗议国防大单,前摩拜CEO后花68万上学,这就是今天的大新闻。...
  8. 如何调整android手机正常颜色,安卓手机怎么调颜色反转
  9. 计算机科学与工程一直火,薪火相传(三)|王采玉:一个渺小如蝼蚁的大学生的成长历程...
  10. 在江南这四年(成长分享)