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(AR)实现CRUD