本文为一个系列中的第五节,前四节拜访如下地址:
- 小书 MybatisPlus 第 1 篇 - 整合 SpringBoot 疾速开始增删改查
- 小书 MybatisPlus 第 2 篇 - 条件结构器的利用及总结
- 小书 MybatisPlus 第 3 篇 - 自定义 SQL
- 小书 MybatisPlus 第 4 篇 - 表格分页与下拉分页查问
Active Record 适宜非常简单的畛域需要,尤其在畛域模型和数据库模型十分相似的状况下。如果遇到更加简单的畛域模型构造(例如用到继承、策略的畛域模型),往往须要应用拆散数据源的畛域模型,联合 Data Mapper(数据映射器)应用。
具体到应用层面,咱们之前章节讲过应用 Data Mapper 做数据的长久层操作。
User user = new User();
user.setName("字母哥");
user.setAge(18);
userMapper.insert(user); //Mybatis Mapper 模式
当初咱们应用 ActiveRecord 模式,用法如下,留神二者的区别
User user = new User();
user.setName("zimug");
user.setAge(18);
user.insert(); //ActiveRecord 模式
一、使 ActiveRecord 模式失效
首先:须要让数据库表对应的数据长久层实体类。集成自 Model<User>,并实现序列化接口。
@Data //lombok 注解
@EqualsAndHashCode(callSuper = true)
public class User extends Model<User> implements Serializable {
private static final long serialVersionUID = 6401942840459021558L;
private Long id;
private String name;
private Integer age;
private String email;
}
其实定义一个 Mapper 继承自 BaseMapper<T>
,T 代表数据长久层实体类。
public interface UserMapper extends BaseMapper<User> {}
这样 Mybatis Plus 的 ActiveRecord 模式就失效了,默认的帮咱们实现了如下的一些数据长久层办法。
二、增删该查的实现
减少:向长久层实体类 User 对应的数据库表 user,插入一条数据。
@Test
public void testInsert() {User user = new User();
user.setName("zimug");
user.setAge(18);
user.setEmail("hadoopcn2@163.com");
boolean success = user.insert();
System.out.println("是否插入胜利:"+success);
}
查问:从数据库表 user 查问所有数据
@Test
public void testSelect() {User user = new User();
List<User> users = user.selectAll();
users.forEach(System.out::println);
}
增加或更新:
- 未设置 ID,被视为 insert 操作,向数据库插入数据
- 如果设置 ID,则先查问是否有此 id 的记录,如果有此 id 记录,则视为 update, 如果没有则视为 insert
@Test
public void testUpdate() {User user = new User();
user.setId(1283915378849751041L);
user.setAge(25);
boolean success = user.insertOrUpdate();
System.out.println("是否增加或更新胜利(更新):"+success);
}
依据 id 在数据库表 user 中删除一条记录
@Test
public void testDelete() {User user = new User();
user.setId(1283915378849751041L);
boolean success = user.deleteById();
System.out.println("是否删除胜利:"+success);
}
欢送关注我的博客,外面有很多精品合集
- 本文转载注明出处(必须带连贯,不能只转文字):字母哥博客。
感觉对您有帮忙的话,帮我点赞、分享!您的反对是我不竭的创作能源!。另外,笔者最近一段时间输入了如下的精品内容,期待您的关注。
- 《手摸手教你学 Spring Boot2.0》
- 《Spring Security-JWT-OAuth2 一本通》
- 《实战前后端拆散 RBAC 权限管理系统》
- 《实战 SpringCloud 微服务从青铜到王者》
- 《VUE 深入浅出系列》