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 = ?)
本文含有隐藏内容,请 开通VIP 后查看