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日

相关文章

  • struts2实现文件下载功能

    下面我为你详细讲解“struts2实现文件下载功能”的完整攻略。 1. 确定文件路径和文件名 在进行文件下载功能的实现之前,我们需要先确定文件的路径和文件名。一般而言,可以将文件路径和文件名存储在数据库或配置文件中。在本次实例中,我们将文件保存在了项目根目录下的uploads目录中,因此文件路径和文件名可以如下方式进行定义: String filePath …

    Java 2023年5月20日
    00
  • Java中数组与集合的相互转换实现解析

    Java中数组与集合的相互转换实现解析 在Java中,数组和集合都是常用的数据结构。在实际开发中,可能会遇到数组和集合之间的转换操作。本文将详细讲解Java中数组与集合的相互转换实现方法。 数组转换为集合 数组可以通过Arrays类中的asList()方法转换为集合。asList()方法可以接收一个数组作为参数,返回与该数组对应的集合。 示例: String…

    Java 2023年5月26日
    00
  • jsp获得本地及serverIP的简单方法

    关于获取本地及server IP的方法,我们可以采用Java Web应用中的Java Server Pages(JSP)进行实现。 以下是获取本地IP地址的步骤: 在JSP页面中引入Java的网络类库。 <%@ page import="java.net.*"%> 使用该类库的 InetAddress 类创建一个实例。 &lt…

    Java 2023年6月15日
    00
  • Java Spring的两种事务你知道吗

    让我们来详细讲解一下“Java Spring的两种事务”。 什么是事务? 在计算机领域,事务是一组数据库操作,它们要么全部成功执行,要么全部失败回滚,不会出现部分操作成功、部分操作失败的情况。在Java编程中,我们可以使用Java Spring框架来管理事务。 Spring事务的两种类型 在Java Spring框架中,Spring事务主要包含两种类型:基于…

    Java 2023年6月2日
    00
  • Java中关于内存泄漏出现的原因汇总及如何避免内存泄漏(超详细版)

    Java中关于内存泄漏出现的原因汇总及如何避免内存泄漏 什么是内存泄漏 内存泄漏指的是由于程序中的某些对象没有彻底释放所占用的内存空间,导致内存占用的不断增加,最终使程序被迫终止或崩溃。内存泄漏问题常常出现在长时间运行的程序中,一旦出现内存泄漏,不仅会影响程序的性能和稳定性,还会造成严重的资源浪费。 Java中内存泄漏出现的原因汇总 1. 软件设计问题 软件…

    Java 2023年5月27日
    00
  • shiro与spring security用自定义异常处理401错误

    我将为您详细讲解 “Shiro与Spring Security用自定义异常处理401错误”的完整攻略。 首先,我们先了解一下什么是401错误。401错误表示未经授权或身份验证失败。在Shiro和Spring Security中,当用户获取未授权的访问时,系统将返回401错误。 接着,我们可以通过自定义异常处理程序来处理401错误。 一、Shiro的自定义异常…

    Java 2023年5月20日
    00
  • SpringBoot项目整合jasypt实现过程详解

    接下来我将为你详细讲解“SpringBoot项目整合jasypt实现过程详解”的完整攻略。 简介 Jasypt(Java Simplified Encryption)是一个Java加密库,可以提供高强度的安全性。Spring Boot整合Jasypt可以实现密码加密,从而提高系统的安全性。 整合过程 1. 引入依赖 在pom.xml文件中添加jasypt-s…

    Java 2023年5月19日
    00
  • jsp源码实例1(输出)

    以下是关于“jsp源码实例1(输出)”的完整攻略: 简介 JSP(Java Server Pages)是一种用来创建动态Web内容的java技术。它允许将java代码和特定的预定义标记混合编写,从而生成HTML、XML和其他格式的文档。在本文中,我们将介绍如何使用JSP输出文本内容。 步骤 1.创建JSP页面 首先,你需要创建一个新的JSP页面(例如test…

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