MyBatis-Plus之select、delete
本文目录
- 一、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:winform自动生成Model,Insert,Select,Delete以及导出Excel的方法
懒人小工具2:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法 github地址:https://github.com/Jimmey-Jiang/J ...
- java mysbatis select_java相关:详解Mybatis中的select方法
java相关:详解Mybatis中的select方法 发布于 2020-7-3| 复制链接 摘记: selectById方法根据id,查询记录 ```java public void updateRe ...
- mysql之DML(SELECT DELETE INSERT UPDATE)
DML:数据操作语言 INSERT DELETE SELECT UPDATE SELECT: SELECT SELECT-LIST FROM TBNAME|TB ...
- SpringBoot+Mybatis 框架之 @Select注解方式搭建
最近两天在帮同学搭建SpringBoot框架,我以往使用的是xml映射文件的方式,这次我的同学要我使用@Select注解的方式搭建的一次.感觉挺有意思的,分享给大家. 1.创建SpringBoot项目 ...
- mybatis配置insert/update/delete同一个模板
insert,update,delete标签只是一个模板,在操作时是以sql语句为核心的, 即在做增/删/改时,insert/update/delete便签可以通用, 但做查询时只能用 select ...
- MyBatis→优缺点、select延迟加载、接口式MyBatis编程、一级缓存、二级缓存、集成Redis自定义缓存、Log4j
MyBatis优缺点 select延迟加载 接口式MyBatis编程 一级缓存 一级缓存原理 一级缓存命中原则 一级缓存销毁 一级缓存避免脏读不可重复读 一级缓存与spring@事务 二级缓存 与一级 ...
- MyBatis中@Insert,@Select,@Update,@Delect的使用
实习中遇到了一个神奇的组件:MyBatis中的@Insert,@Select,@Update,@Delect 在实际开发生产中可以直接在dao层的实现类中添加注解,即可实现我们想要的增删改查操作: 代 ...
- mybatis mysql cursor_MySQL JDBC/MyBatis Stream方式读取SELECT超大结果集
情景: 遍历并处理一个大表中的所有数据, 这个表中的数据可能会是千万条或者上亿条, 很多人可能会说用分页limit--但需求本身一次性遍历更加方便, 且Oracle/DB2都有方便的游标机制. 对DB ...
- 老司机学习MyBatis之如何通过select返回Map
From: https://blog.csdn.net/Gaomb_1990/article/details/80638177 一.案例 当要查询的结果是一个Map的时候,这里分为两种情况: ①返回单 ...
- MyBatis select标签
在 MyBatis 中,select 标签是最常用也是功能最强大的 SQL 语言,用于执行查询操作. select 示例语句如下. SELECT id,NAME,url FROM website WH ...
最新文章
- 【机器学习入门】(8) 线性回归算法:正则化、岭回归、实例应用(房价预测)附python完整代码和数据集
- 软考网络工程师身份证忘记领取啦怎么办
- ps随机排列_漂亮!自然材料:人工可控微米级胶体粒子“堆积木”——粒子随心所欲的组装排列!...
- Confluence 6 使用一个页面为站点的默认页面
- Docker系列教程02-MongoDB默认开启鉴权
- HTML/XHTML/HTML5/CSS学习链接
- 英文期刊催稿信模板_手把手教你写投稿信,另附查尔斯沃思高质量模板
- javascript Date
- 各种数据库的连接字符串
- hdu 1754 I hate it (线段树)
- 明清时期中央朝廷与地方关系中的江南著姓望族
- EF的基本了解(一)
- 微信小程序 文字下标_微信小程序开发中,怎么给导航栏图标下面加上文本?...
- 英伟达JETSON XAVIER NX使用小记
- open judge 1.7.18
- 移动端html网页真机调试,Mac端调试iphone移动端网页
- OneNav一为主题魔改教程(七):继续完善本地网址功能,重复的网址不让保存--洞五洞洞幺
- Vsearch免费替代收费版的usearch
- 输入一个字符,判断其是否为大写字母,如果是,将他转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
- DEDE(织梦)插件开发案例(一)
热门文章
- Jetson Nano复制系统和U盘启动【第三部分】
- Ubuntu安装mpich
- 计算机 拔电源 重启,电脑在关机就自动重新启动。但拔掉电源插头再关就又不会重新启动了。求高手帮忙!!!...
- 通过面试谈谈自己的一点感悟(只是个人的一点拙见)
- GHOST手动备份详细教程(图文)
- 慕容复的故事告诉我们:应试教育害死人
- 公摊面积取消闹乌龙,历史学家李学勤逝世,微软员工抗议国防大单,前摩拜CEO后花68万上学,这就是今天的大新闻。...
- 如何调整android手机正常颜色,安卓手机怎么调颜色反转
- 计算机科学与工程一直火,薪火相传(三)|王采玉:一个渺小如蝼蚁的大学生的成长历程...
- 在江南这四年(成长分享)