MyBatisPlus--ActiveRecord 喜欢ヅ旅行 2021-08-27 00:28 490阅读 0赞 ### ActiveRecord ### ActiveRecord(简称AR)也属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型;表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简介易懂。 ActiveRecord的主要思想是: * 每一个数据库表对应创建一个类,类的每一个对象实例对英语数据库中表的一行记录;通常表的每个字段在类种都有相应的Field; * ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CRUD; * ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑; ### 实例 ### 在MyBatisPlus中,开启AR非常简单,只需要将实体对象集成Model<T>即可 User实体类: @Data @NoArgsConstructor @AllArgsConstructor @TableName("tb_user") public class User extends Model<User> { //指定主键为自增 @TableId(type = IdType.AUTO) private Long id; //指定数据表中字段名 @TableField(value = "user_name") private String userName; private String password; private String name; private Integer age; private String email; //指定该字段在表中是不存在的 @TableField(exist = false) private String address; } Mapper: AR底层依然是使用mapper来操作,所以mapper接口不可以省略: public interface UserMapper extends BaseMapper<User> { } 查询数据:selectById @RunWith(SpringRunner.class) @SpringBootTest class ARTest { @Test public void testSelectByID(){ User user = new User(); User user1 = user.selectById(2l); System.out.println(user1); } } 控制台打印: User(id=2, userName=lisi, password=123456, name=李四, age=28, email=test2@qq.com, address=null) 查询数据:selectList @Test public void testSelectList(){ User user = new User(); QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.gt("age", "1");//查询条件:age大于1 List<User> users = user.selectList(wrapper); for (User u : users) System.out.println(u); } 控制台打印: User(id=2, userName=三狗, password=123456, name=李四, age=88, email=test2@qq.com, address=null) User(id=4, userName=zhaoliu, password=123456, name=赵六, age=48, email=test4@qq.com, address=null) 新增数据:insert @Test public void testInsert(){ User user = new User(); user.setUserName("ergou"); user.setName("二狗"); user.setAge(18); user.setPassword("123456"); boolean insert = user.insert(); System.out.println(insert); } ![在这里插入图片描述][20200212000627216.png] 更新数据:updateById @Test public void testUpdateById(){ //根据id更新 User user = new User(); user.setId(2l);//更新条件 user.setAge(88);//更新数据 boolean result = user.updateById(); System.out.println(result); } ![在这里插入图片描述][20200212000927975.png] 更新数据:update @Test public void testUpdate(){ User user = new User(); //根据条件更新 UpdateWrapper<User> wrapper = new UpdateWrapper<>(); wrapper.set("user_name", "三狗");//更新数据 wrapper.eq("age", "88");//更新条件 boolean result = user.update(wrapper); System.out.println(result); } ![在这里插入图片描述][20200212001343655.png] 删除数据:deleteById @Test public void testDeleteById(){ User user = new User(); user.setId(5L); boolean result = user.deleteById(); System.out.println(result); } ![在这里插入图片描述][20200212001646836.png] 也可以根据条件删除,使用方法和上面一致。 [20200212000627216.png]: /images/20210813/3a09370b930d47e5be64b3dc5096f24f.png [20200212000927975.png]: /images/20210813/a454509dd0bb4ef08e46e9fd9b3f1b42.png [20200212001343655.png]: /images/20210813/7e7a27acfdbe495fad520c5f3a630760.png [20200212001646836.png]: /images/20210813/ff9f2cc368894f8187b6644875a9477f.png
还没有评论,来说两句吧...