1、什么是 ActiveRecord
ActiveRecord(简称AR)也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。
ActiveRecord的主要思想是:
- 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的属性;
- ActiveRecord 同时负责把自己持久化,在 ActiveRecord 中封装了对数据库的访问,即CURD;;
- ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;
2、在 Mybatis-plus 中使用 ActiveRecord
在 Mybatis-plus 中使用 ActiveRecord 很简单,实体类继承 Model<T>
类就行,如下所示:
@TableName(value = "`order`")
public class Order extends Model<Order> {
@TableId(type =IdType.AUTO)
private int id;
@TableField(fill = FieldFill.INSERT_UPDATE,value = "date")
private String date;
private double total;
private int uid;
@TableField(exist = false, select = false)
private User user;
//省略get/set方法
}
Model
类中的方法:
2.1、添加语句
insert()
:根据对象实例的值进行添加操作User user = new User(); //通过 set 方法给对象赋值 user.setXXX("XXX"); //insert方法就是 model 提供的 boolean insert = user.insert();
2.2、修改语句
updateById()
:根据对象实例的值进行修改操作,以主键值为修改条件User user = new User(); //通过 set 方法给对象赋值 user.setXXX("XXX"); //updateById 方法就是 model 提供的 boolean insert = user.updateById();
update(Wrapper<T> updateWrapper)
:根据对象实例的值进行修改操作,并以形参的值为为修改条件User user = new User(); //通过 set 方法给对象赋值 user.setXXX("XXX"); UpdateWrapper<User> wrapper = new UpdateWrapper<>(); //通过构造器添加修改字段,这个会覆盖对象中的相同属性 wrapper.set("XXX", XXX).eq("XXX",XXX); boolean update = user.update(wrapper);
2.3、删除语句
deleteById()
:根据主键id删除数据delete(Wrapper<T> queryWrapper)
:根据指定条件删除数据
2.4、查询语句
selectAll()
:查询所有数据selectById()
:根据主键id查询数据selectList(Wrapper<T> queryWrapper)
:根据自定义条件查询数据selectOne(Wrapper<T> queryWrapper)
:根据自定义条件查询一条数据selectPage(E page, Wrapper<T> queryWrapper)
:根据自定义条件分页查询selectCount(Wrapper<T> queryWrapper)
:根据自定义条件查询数据条数
删除语句 和 查询语句的方法和 BaseMapper 类的方法差别不大,这里就省略具体用法。