1、什么是ActiveRecord(只做简单了解即可)?

Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。

 

2、Mybatis Plus对AR有一定支持, 在MP中开启AR,仅需要实体类继承Model类即可

@Data
//表名映射,用于新增才需要
@TableName("banner")
public class BannerDO extends Model<BannerDO> {
​
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
​
    private String img;
​
    private String url;
​
    private Integer weight;
}

 

3、使用

BannerDO bannerDO = new BannerDO();
BannerDO b = bannerDO.selectOne(new QueryWrapper<BannerDO>().eq("id","1"));
System.out.println(b);

 

4、使用建议

  • 业务逻辑比较简单,当类基本上和数据库中的表一一对应时, ActiveRecord是非常方便的, 即业务逻辑大多数是对单表操作,简单,直观 一个类就包括了数据访问和业务逻辑.

  • ActiveRecord虽然有业务逻辑, 但基本上都是基于单表的. 跨表逻辑一般会放到当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script)中.

  • 如果对象间的关联越来越多, 你的事务脚本越来越庞大, 重复的代码越来越多, 就不建议使用了

  • 模型容易混乱,ActiveRecord保存了数据, 使它有时候看上去像数据传输对象(DTO). 但是ActiveRecord有数据库访问能力, 所以所以分布式或者大型项目基本不用

      • POJO: model/domain/dto/vo/bo/do