ActiveRecord是MybatisPlus的一个语法糖,使得CRUD使用更加方便
1 ActiveRecord
1.1 介绍
- Active Record,是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录
- ActiveRecord一直广受动态语言(PHP、Ruby)的喜爱,而Java作为准静态语言,对于ActiveRecord往往只能感叹器优雅,所有MP也在AR道路上进行了一定的探索
1.2 开启AR
- 步骤很简单,只需要JavaBean继承
com.baomidou.mybatisplus.extension.activerecord.Model
即可
1 2 3 4 5 6 7 8
| @Data public class User extends Model<User> { @TableId(type = IdType.AUTO) private Integer id; private String name; private Integer age; private String email; }
|
1.3 操作演示
- 由于JavaBean继承与Model,而Model里面有对数据库操作的基本方法,所以对数据库操作时用JavaBean自己来实现
1 2 3 4 5 6 7 8 9 10 11
| @Test public void insertTest() { User user = new User(); user.setName("asaki"); user.setAge(18); user.setEmail("asaki@email.com");
user.insert(); }
|
1 2 3 4 5 6 7 8 9 10 11
| @Test public void updateTest() { User user = new User(); user.setName("ASAKI"); user.setAge(22); user.setEmail("asaki@qq.com");
user.update(new UpdateWrapper<User>().eq("id", 12)); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| @Test public void selectTest() { User user = new User();
User user1 = user.selectById(1); System.out.println(user1);
List<User> users = user.selectAll(); users.forEach(System.out::println);
List<User> users2 = user.selectList(new QueryWrapper<User>().eq("age", 18)); users2.forEach(System.out::println); }
|
1 2 3 4 5 6 7 8 9 10 11
| @Test public void deleteTest() { User user = new User();
user.deleteById(12);
user.delete(new QueryWrapper<User>().eq("id", 12)); }
|
1.4 总结
- AR模式提供了一种更加便捷的方式实现CRUD操作,其本质还是调用的Mybatis对应的方法,类似于语法糖
- 到此,我们简单领略了Mybatis-Plus的美丽与高效率,值得注意的一点是:我们提供了强大的代码生成器,可以快速生成各类代码,真正做到了即开即用