本文为一个系列中的第五节,前四节拜访如下地址:

  • 小书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,插入一条数据。

@Testpublic 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查问所有数据

@Testpublic void testSelect() {  User user = new User();  List<User> users = user.selectAll();  users.forEach(System.out::println);}

增加或更新:

  • 未设置ID,被视为insert操作,向数据库插入数据
  • 如果设置ID,则先查问是否有此id的记录,如果有此id记录,则视为update,如果没有则视为insert
@Testpublic void testUpdate() {  User user = new User();  user.setId(1283915378849751041L);  user.setAge(25);  boolean success = user.insertOrUpdate();  System.out.println("是否增加或更新胜利(更新):"+success);}

依据id在数据库表user中删除一条记录

@Testpublic 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深入浅出系列》