MyBatis-Plus之select、delete用法及说明

 更新时间:2026年04月25日 11:53:59   作者:今日相乐,皆当喜欢  
文章主要讲解了Mybatis-Plus中的查询和删除操作,查询操作包括根据ID、批量和使用map进行条件查询,以及内置分页插件的使用,删除操作则包括物理删除和逻辑删除,其中逻辑删除需要在数据库和实体类中进行相关配置

一、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、测试逻辑删除

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于SpringBoot启动类静态资源路径问题

    基于SpringBoot启动类静态资源路径问题

    这篇文章主要介绍了SpringBoot启动类静态资源路径问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • MyBatis的一级缓存和二级缓存以及优点说明

    MyBatis的一级缓存和二级缓存以及优点说明

    MyBatis的缓存机制包括一级缓存和二级缓存,一级缓存是SqlSession级别的缓存,开启默认,二级缓存是跨SqlSession的缓存,需要手动开启和配置,二级缓存的优点是减少数据库访问、提高性能、降低负载和提高可扩展性,同时需要注意缓存可能导致的数据不一致问题
    2025-02-02
  • JAVA使用反射读取注解方式

    JAVA使用反射读取注解方式

    在Java中,反射机制不仅可以操作对象的属性和方法,还可以读取注解,本文介绍了反射读取注解的步骤,包括定义注解、使用注解、通过反射获取注解信息及处理注解信息,通过具体代码例子和运行结果,详细解释了注解的定义、使用和反射获取注解的过程
    2024-09-09
  • Java创建和填充PDF表单域方法

    Java创建和填充PDF表单域方法

    在本篇文章中小编给大家分享了关于Java创建和填充PDF表单域方法和步骤,有需要的朋友们学习下。
    2019-01-01
  • SpringSecurity6.0 如何通过JWTtoken进行认证授权

    SpringSecurity6.0 如何通过JWTtoken进行认证授权

    这篇文章主要介绍了SpringSecurity6.0 通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-04-04
  • springboot返回modelandview页面的实例

    springboot返回modelandview页面的实例

    这篇文章主要介绍了springboot返回modelandview页面的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Java 中的 xx ≠ null 是什么新语法

    Java 中的 xx ≠ null 是什么新语法

    Java中null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。本文给大家分享Java 中的 xx ≠ null 是什么新语法,感兴趣的朋友一起看看吧
    2021-06-06
  • java多线程从入门到精通看这篇就够了

    java多线程从入门到精通看这篇就够了

    熟悉 Java 多线程编程的同学都知道,当我们线程创建过多时,容易引发内存溢出,因此我们就有必要使用线程池的技术了,今天通过本文给大家分享java多线程从入门到精通的相关知识,一起看看吧
    2021-06-06
  • Java那点儿事之Map集合不为人知的秘密有哪些

    Java那点儿事之Map集合不为人知的秘密有哪些

    Map用于保存具有映射关系的数据,Map集合里保存着两组值,一组用于保存Map的key,另一组保存着Map的value,和查字典类似,通过key找到对应的value,通过页数找到对应的信息。用学生类来说,key相当于学号,value对应name,age,sex等信息。用这种对应关系方便查找
    2021-10-10
  • @RequestMapping 如何使用@PathVariable 从URI中获取参数

    @RequestMapping 如何使用@PathVariable 从URI中获取参数

    这篇文章主要介绍了@RequestMapping 如何使用@PathVariable 从URI中获取参数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08

最新评论