MyBatis-Plus使用ActiveRecord(AR)实现CRUD

yizhihongxing

下面是关于“MyBatis-Plus使用ActiveRecord(AR)实现CRUD”的完整攻略:

什么是MyBatis-Plus的ActiveRecord(AR)

MyBatis-Plus是一个MyBatis的优秀增强工具,比MyBatis更加强大、方便、强大、灵活,其AR模式是一种ORM思想,使得你可以通过链式调用方法完成CRUD操作,减少了编写重复的SQL语句,提高了开发效率。

如何使用AR模式

  1. 通过maven引入MyBatis-Plus及依赖
<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus</artifactId>
   <version>${mybatis-plus.version}</version>
</dependency>
  1. 创建实体类
@Data
public class User extends Model<User> {

   @TableId(value = "id", type = IdType.AUTO)
   private Long id;
   private String name;
   private Integer age;
   private String email;

   @Override
   protected Serializable pkVal() {
       return this.id;
   }
}

注意,实体类必须继承Model类,并且在主键上添加@TableId注解,指定主键类型和生成方式。

  1. 使用AR模式操作数据

  2. 插入操作

User user = new User();
user.setName("Tom");
user.setAge(18);
user.setEmail("tom@baomidou.com");
boolean result = user.insert();
  • 删除操作
User user = new User();
user.setId(1L);
boolean result = user.deleteById();
  • 更新操作
User user = new User();
user.setId(1L);
user.setEmail("jerry@baomidou.com");
boolean result = user.updateById();
  • 查询操作
User user = new User();
List<User> userList = user.selectAll();
  • 条件查询操作
User user = new User();
user.selectPage(new Page<>(1, 10), new EntityWrapper<>());
  1. 使用AR模式进行分页查询
User user = new User();
Page<User> page = new Page<>(1, 10);
user.selectPage(page, new EntityWrapper<User>());
List<User> userList = page.getRecords();
long total = page.getTotal();

以上示例中,使用了MyBatis-Plus的AR模式完成了CRUD操作以及分页查询操作。在实际的开发中,可以根据具体的需求灵活运用。

示例说明

示例1:使用AR模式插入数据

@Test
public void insertTest() {
    User user = new User();
    user.setName("Tom");
    user.setAge(18);
    user.setEmail("tom@baomidou.com");
    boolean result = user.insert();
    Assert.assertEquals(true, result);
}

在示例1中,首先创建一个User对象,然后设置对应的属性值,最后使用insert()方法插入到数据库中。

示例2:使用AR模式分页查询数据

@Test
public void selectPageTest() {
    User user = new User();
    Page<User> page = new Page<>(1, 10);
    user.selectPage(page, new EntityWrapper<User>());
    List<User> userList = page.getRecords();
    long total = page.getTotal();
    System.out.println("总记录数:" + total);
    for (User u : userList) {
        System.out.println(u);
    }
}

在示例2中,首先创建一个User对象,然后创建一个分页对象,使用selectPage()方法分页查询用户数据,最后通过分页对象获取对应的用户数据和总记录数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis-Plus使用ActiveRecord(AR)实现CRUD - Python技术站

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

相关文章

  • 详解Spring循环依赖的解决方案

    针对“详解Spring循环依赖的解决方案”的完整攻略,我为大家梳理了以下内容: 什么是Spring循环依赖? Spring容器中,当两个或多个bean之间形成相互依赖关系时,就会产生循环依赖。比如:A依赖B,B依赖C,C依赖A,这时就会导致循环依赖。 Spring循环依赖的解决方案 为了解决Spring容器中的循环依赖问题,Spring提供了以下三种解决方法…

    Java 2023年5月31日
    00
  • JAVA中字符串函数subString的用法小结

    接下来我会为您详细讲解“JAVA中字符串函数subString的用法小结”的攻略。 JAVA中字符串函数subString的用法小结 介绍 在JAVA中,字符串函数subString()用来截取字符串的一个子串。用法非常简单,只需要传入开始位置和结束位置的下标即可。具体语法如下: String subString(int beginIndex, int en…

    Java 2023年5月26日
    00
  • Java ArrayList深入源码层分析

    Java ArrayList深入源码层分析 简介 ArrayList 是 Java 中集合框架中最基础、最常用的一种数据结构,它基于数组实现,可以动态扩容,支持添加、删除、查找等操作。本文将对 ArrayList 的源码进行深入分析,讲解其内部实现原理。 类的继承关系 ArrayList 类位于 java.util 包下,继承于 AbstractList 类…

    Java 2023年5月26日
    00
  • SpringBoot扩展外部化配置的原理解析

    下面我为你详细讲解“SpringBoot扩展外部化配置的原理解析”的攻略。 1. 理解SpringBoot配置管理流程 SpringBoot使用YAML或properties格式的文件来管理应用程序所需的各种配置信息。它们可以分为应用表现配置和逻辑配置两类,其中应用表现配置是指一些与应用程序用户直接交互的配置,例如网站标题和页脚等。逻辑配置是指一些与应用程序…

    Java 2023年5月31日
    00
  • 关于如何正确地定义Java内部类方法详解

    下面是关于如何正确地定义Java内部类方法的详细讲解: 定义内部类方法的方法 要定义Java内部类方法,你需要按照以下步骤进行操作: 1.在外部类中定义内部类 public class OuterClass { private int outerField; public void outerMethod() { InnerClass innerObject…

    Java 2023年5月19日
    00
  • 史上最全Java8日期时间工具类(分享)

    首先,该文章介绍了作者基于Java 8中的日期时间API开发的一个日期时间工具类,该工具类可以方便地进行常用的日期时间操作。以下是工具类的一些主要特点: 支持多种日期时间格式字符串的解析和格式化。 提供丰富的日期时间计算和转换方法。 更符合人类习惯的日期时间输出格式。 接下来,我们详细讲解一些该工具类的常用方法: 将日期时间转换成指定格式的字符串 使用该工具…

    Java 2023年5月20日
    00
  • JAVA多线程之中断机制stop()、interrupted()、isInterrupted()

    Java多线程之中断机制stop()、interrupted()、isInterrupted() 什么是中断机制? 在Java多线程编程中,中断机制是一种线程协作机制。由于线程的正常执行过程中,往往需要等待I/O操作或其它原因,这些等待过程可能会导致程序执行过程被阻塞。因此,一些长时间的阻塞操作如果不能在合理的时间内得到响应,就需要使用中断机制进行打断。通过…

    Java 2023年5月19日
    00
  • Intellij IDEA 2020.3 配置教程详解

    Intellij IDEA 2020.3 配置教程详解 Intellij IDEA 是一款强大的 Java 集成开发环境(IDE),提供了丰富的编辑工具、代码分析功能与调试工具,适合 Java 开发者使用。在开始使用 Intellij IDEA 之前,需要对它进行一些配置。本教程将详细讲解 Intellij IDEA 2020.3 的配置过程,包括如何配置 …

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