Mybatis Plus 增删改查的实现(小白教程)

MyBatis Plus 是基于 MyBatis 的增强工具,简化了 MyBatis 的使用,提供了很多增强功能。相比于原生 MyBatis,MyBatis Plus 更加易用,使用 MyBatis Plus 可以加快开发效率。本文主要介绍如何使用 MyBatis Plus 进行常见的增删改查操作。

安装 MyBatis Plus

要使用 MyBatis Plus,需要在项目中引入 MyBatis Plus 的依赖。

在 Maven 中引入 MyBatis Plus:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
</dependency>

在 Gradle 中引入 MyBatis Plus:

implementation 'com.baomidou:mybatis-plus-boot-starter:3.4.1'

配置 MyBatis Plus

在 Spring Boot 项目中,只需要添加以下配置,MyBatis Plus 就可以工作:

mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml

实现增删改查操作

实现插入操作

MyBatis Plus 提供了对插入操作的支持。在实体对象中,使用 @TableId 注解标记字段作为主键,使用 @TableField 注解标记其他字段。

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("user")
public class User {

    @TableId(type = IdType.AUTO)
    private Long id;

    @TableField("name")
    private String name;

    @TableField("email")
    private String email;
}

通过 InsertMapper 接口的 insert 方法,可以实现插入操作。

@Autowired
private InsertMapper<User> userInsertMapper;

@Test
void testInsert() {
    User user = new User();
    user.setName("张三");
    user.setEmail("zhangsan@example.com");
    userInsertMapper.insert(user);
}

实现查询操作

MyBatis Plus 提供了对查询操作的支持。通过 SelectMapper 接口的 selectOneselectByIdselectList,可以实现分别查询一个实体、根据主键查询一个实体、查询多个实体的操作。如果是复杂的查询需求,可以使用 MyBatis 的 XML 映射文件进行自定义查询。

@Autowired
private SelectMapper<User> userSelectMapper;

@Test
void testSelectOne() {
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.eq("name", "张三");
    User user = userSelectMapper.selectOne(wrapper);
    Assertions.assertNotNull(user);
}

@Test
void testSelectById() {
    Long id = 1L;
    User user = userSelectMapper.selectById(id);
    Assertions.assertNotNull(user);
}

@Test
void testSelectList() {
    List<User> userList = userSelectMapper.selectList(null);
    Assertions.assertTrue(userList.size() > 0);
}

实现更新操作

MyBatis Plus 提供了对更新操作的支持。通过 UpdateMapper 接口的 updateById 方法,可以根据主键更新实体。

@Autowired
private UpdateMapper<User> userUpdateMapper;

@Test
void testUpdate() {
    Long id = 1L;
    User user = userSelectMapper.selectById(id);
    user.setName("李四");
    user.setEmail("lisi@example.com");
    userUpdateMapper.updateById(user);

    User updatedUser = userSelectMapper.selectById(id);
    Assertions.assertEquals(user.getName(), updatedUser.getName());
    Assertions.assertEquals(user.getEmail(), updatedUser.getEmail());
}

实现删除操作

MyBatis Plus 提供了对删除操作的支持。通过 DeleteMapper 接口的 deleteById 方法,可以根据主键删除实体。

@Autowired
private DeleteMapper<User> userDeleteMapper;

@Test
void testDelete() {
    Long id = 1L;
    userDeleteMapper.deleteById(id);

    User user = userSelectMapper.selectById(id);
    Assertions.assertNull(user);
}

小结

本文介绍了如何使用 MyBatis Plus 进行增删改查的操作。MyBatis Plus 提供了非常方便的操作方式,使得开发人员可以更加轻松的完成数据库操作。如果对于 MyBatis Plus 还不太熟悉,建议去官方文档了解更多信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis Plus 增删改查的实现(小白教程) - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • spring整合redis以及使用RedisTemplate的方法

    Spring整合Redis以及使用RedisTemplate的方法 什么是Redis? Redis是一个开源的,高级的、基于内存的NoSQL数据库,常用于缓存、队列、分布式锁等应用。它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。 Spring整合Redis 1. 环境搭建 首先需要引入Spring Data Redis模块,以及Jedis或L…

    Java 2023年5月19日
    00
  • Spring Boot实战之模板引擎

    SpringBoot实战之模板引擎 模板引擎是用于生成动态HTML内容的工具,它将模板文件和数据进行结合,生成最终的HTML文档,常见的模板引擎有Thymeleaf、FreeMarker、Velocity等。在SpringBoot框架中,可以非常方便地集成各种模板引擎,本文将重点介绍如何使用Thymeleaf和FreeMarker模板引擎。 Thymelea…

    Java 2023年5月15日
    00
  • 什么是对象的引用?

    什么是对象引用? 在Java中,一个对象在内存中的存在是通过一个固定的地址来表示的,这个地址就是对象在内存中的引用。对象引用可以看作是一个指针,它指向对象在内存中的位置,使得我们可以操作这个对象。 在Java中,所有的变量都是对象的引用,包括基本数据类型的变量。比如,下面代码中的str就是一个对象的引用: String str = "Hello, …

    Java 2023年5月10日
    00
  • 一文详解Spring构造函数推断

    一文详解Spring构造函数推断 在使用Spring Framework进行Java开发时,构造函数推断是一个重要的特性。本文将介绍什么是构造函数推断,为什么需要它,以及如何使用它。 什么是构造函数推断? 构造函数推断是Spring Framework的一个特性,它可以自动推断应该使用哪个构造函数来实例化一个 bean。以前,我们需要显式地在XML或Java…

    Java 2023年5月26日
    00
  • java实现无符号数转换、字符串补齐、md5、uuid、随机数示例

    Java实现无符号数转换 在Java中,整数类型默认为带符号整数,即可以表示正数、负数和0。而有时候我们需要处理无符号整数,即只能表示非负整数。这时候可以使用Java中的位运算进行转换。 将有符号整数转换为无符号整数需要进行以下操作: 将有符号整数的二进制表示转换为补码表示。 将补码表示的二进制字符串左移一位,并将右侧补一个0,这样可以去掉一个符号位。 将左…

    Java 2023年5月27日
    00
  • SpringBoot中Jackson日期格式化技巧分享

    标题:SpringBoot中Jackson日期格式化技巧分享 介绍 在SpringBoot中,我们经常需要进行数据的序列化和反序列化。而日期格式化是很常见的应用场景,Jackson作为SpringBoot内置的序列化/反序列化工具,提供了多种日期格式化的方法。在本文中,我们将介绍 SpringBoot中 Jackson日期格式化技巧。 基本用法 Spring…

    Java 2023年5月20日
    00
  • Java异常链是什么?

    Java异常链是指一个异常抛出并被上层方法捕获时,将该异常重新封装成新的异常并抛出,形成的异常处理机制。 当一个方法抛出异常时,其上层调用该方法的方法也可能抛出异常。如果每个方法都将异常立即抛出,则可能会导致错误信息繁琐。这时就需要将底层异常信息传递到上层调用,形成异常链,以便更好地追踪错误信息。强调的是,异常链并不会将异常的控制权交给上层调用,而是由异常处…

    Java 2023年4月27日
    00
  • java基础之String知识总结

    Java基础之String知识总结 String的定义与特点 String是Java语言中的一种引用类型,其特点是不可变。 在Java中,所有的字符串都被封装在String对象中,可以通过双引号来创建字符串对象,例如: String str = "Hello World"; String的常用方法 length() 用于获取字符串的长度,…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部