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

  

下面是关于“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()方法分页查询用户数据,最后通过分页对象获取对应的用户数据和总记录数。

相关文章