ActiveRecord(简称AR)一直广受动态语言( PHP 、 Ruby 等)的喜爱,而 Java 作为准静态语言,对于ActiveRecord 往往只能感叹其优雅,但也进行了一定的支持。
什么是ActiveRecord?
ActiveRecord也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。
配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。
ActiveRecord的主要思想是:
每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;
ActiveRecord 同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;
ActiveRecord 是一种领域模型(Domain Model),封装了部分业务逻辑;
开启AR之旅:在MP中,开启AR非常简单,只需要将实体对象继承Model<实体类>,并重写 pkVal 方法,方法返回主键。
@Override protected Serializable pkVal() { return id; }
1.根据主键查询
@Test public void selectById() { User user = new User(); user.setId(5L); User user2 = user.selectById(); System.out.println(user2); }
2.新增数据
@Test public void testInsert(){ User user = new User(); user.setUserName("diaochan"); user.setPassword("123456"); user.setAge(20); user.setName("貂蝉"); // 调用AR的insert方法进行插入数据 boolean insert = user.insert(); System.out.println("result => " + insert); }
3.删除操作
@Test public void testDelete(){ User user = new User(); user.setId(5L); boolean delete = user.deleteById(); System.out.println("result => " + delete); }
4.更新操作
@Test public void testUpdate(){ User user = new User(); user.setId(10L);// 查询条件 user.setAge(31); // 更新的数据 boolean result = user.updateById(); System.out.println("result => " + result); }
5.根据条件查询
@Test public void testSelect(){ User user = new User(); QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.ge("age", 30); //大于等于30岁的用户查询出来 List<User> users = user.selectList(wrapper); for (User user1 : users) { System.out.println(user1); } }