MyBatisPlus学习笔记(二)ActiveRecord(活动记录)
理解ActiveRecord
- Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。
- AR 模式提供了一种更加便捷的方式实现 CRUD 操作,其本质还是调用的 Mybatis 对应的方法,类似于语法糖
- 语法糖是指计算机语言中添加的某种语法,这种语法对原本语言的功能并没有影响,可以更方便开发者使用,可以避免出错的机会,让程序可读性更好.
部署使用
-
只需要让实体类直接继承 Model 类且实现主键指定的方法即可。
-
示例
public class Employee extends Model<Employee>{ // ..fields // ..getter and setter @Override protected Serializable pkVal() { return this.id; } }
-
pkVal() 即是返回的主键值,必须使用此方法
基本CRUD
insert
public void insertAR() {
Employee employee = new Employee();
employee.setLastName("qazx");
employee.setAge(44);
employee.setEmail("qazx@qq.com");
boolean insert = employee.insert();
System.out.println("操作是否成功:"+insert);
}
update
public void updateAR() {
Employee employee = new Employee();
employee.setLastName("qqzx");
employee.setAge(24);
employee.setGender(1);
/*
employee.setId(18);
boolean updateById = employee.updateById();
// UPDATE tbl_employee SET last_name=?, gender=?, age=? WHERE id=?
System.out.println("操作是否成功:"+updateById);
*/
boolean update = employee.update(new EntityWrapper<Employee>()
.eq("last_name", "qqq"));
// UPDATE tbl_employee SET last_name=?, gender=?, age=? WHERE (last_name = ?)
System.out.println("操作是否成功:"+update);
}
select
public void selectAR() {
Employee employee = new Employee();
employee.setLastName("qazx");
List<Employee> list = employee.selectList(new EntityWrapper<>().eq("last_name", "qazx"));
// SELECT id,last_name AS lastName,email,gender,age FROM tbl_employee WHERE (last_name = ?)
for (Employee employee2 : list) {
System.out.println(employee2);
}
}
delete
public void deleteAR() {
Employee employee = new Employee();
boolean delete = employee.delete(new EntityWrapper<Employee>().like("last_name", "ef"));
// DELETE FROM tbl_employee WHERE (last_name LIKE ?) %ef%
System.out.println("操作是否成功:"+delete);
}
总结
- 想要使用ActiveRecord(活动记录),只要实体类继承Model类,再实现pkVal() 方法即可。
- 使用方法和mybatisPlus中提供的方法类似,主要使用条件构造器。