Mybatis-Plus:ActiveRecord(根据主键查询新增数据更新操作删除操作根据条件查询)

Posted CodeJiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis-Plus:ActiveRecord(根据主键查询新增数据更新操作删除操作根据条件查询)相关的知识,希望对你有一定的参考价值。

本节案例承接自上节案例

1. ActiveRecord

ActiveRecord可以理解为Mybatis-Plus给我们提供一些简单的增删改查操作SQl语句的自动生成操作。

什么是ActiveRecord?

ActiveRecord也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而
且简洁易懂。

ActiveRecord的主要思想是:

  • 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field
  • ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD
  • ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;

1.1 开启AR之旅

Mybatis-Plus中,开启AR非常简单,只需要将实体对象继承Model即可。

package com.tian.pojo;


import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User extends Model<User> 
    private Long id;
    private String userName;
    private String password;
    private String name;
    private Integer age;
    private String email;


1.2 根据主键查询


SpringbootMybatisplusApplicationTests.java

package com.tian.springbootmybatisplus;

import com.tian.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringbootMybatisplusApplicationTests 

    @Test
    public void testSelectById() 
        User user = new User();
        user.setId(2L);
			
		// 注意这里直接调用的是user的selectById方法
        User user1 = user.selectById();
        System.out.println(user1);
    


运行结果:

生成的sql为:SELECT id,user_name,password,name,age,email FROM tb_user WHERE id=?

说明:


1.3 新增数据

    @Test
    public void testInsert() 
        User user = new User();
        user.setUserName("diaochan");
        user.setPassword("123456");
        user.setAge(20);
        user.setName("貂蝉");
        user.setEmail("diaochan@itcast.cn");

        // 调用AR的insert方法进行插入数据 返回true说明插入成功 false说明插入失败
        boolean insert = user.insert();
        System.out.println("result => " + insert);
    

运行结果:

生成的sql为:INSERT INTO tb_user ( user_name, password, name, age, email ) VALUES ( ?, ?, ?, ?, ? )


1.4 更新操作

    @Test
    public void testUpdate() 
        User user = new User();
        user.setId(7L);// 查询条件 Id为7
        user.setAge(25); // 更新的数据 把age设置为25

        boolean result = user.updateById();
        System.out.println("result => " + result);
    

运行结果:

生成的sql为:UPDATE tb_user SET age=? WHERE id=?


1.5 删除操作

    @Test
    public void testDelete() 
        User user = new User();
        // 设置删除的条件为id为7
        user.setId(7L);

        // 返回true说明删除成功 否则说明删除失败
        boolean delete = user.deleteById();
        System.out.println("result => " + delete);
    

运行结果:

生成的sql为:DELETE FROM tb_user WHERE id=?


1.6 根据条件查询

想要更好的掌握这一块知识的同学请看 条件构造器说明

    public void testSelect() 
        User user = new User();

        QueryWrapper<User> wrapper = new QueryWrapper<>();
        // 查询 name 为 王五 或者 age 为 21 的用户的 id和name和age
        wrapper.eq("name", "王五")
                .or()
                .eq("age", 21)
                .select("id", "name", "age"); //指定查询的字段为 id、name、age

        List<User> users = user.selectList(wrapper);
        for (User user1 : users) 
            System.out.println(user1);
        
    

运行结果:

生成的sql为:SELECT id,name,age FROM tb_user WHERE (name = ? OR age = ?)



以上是关于Mybatis-Plus:ActiveRecord(根据主键查询新增数据更新操作删除操作根据条件查询)的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis-Plus:ActiveRecord和插件应用

MyBatis-Plus入门之ActiveRecord模式

浅谈MyBatis-Plus学习之ActiveRecord

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

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

Mybatis-Plus:ActiveRecord(根据主键查询新增数据更新操作删除操作根据条件查询)