本文为一个系列中的第五节,前四节拜访如下地址:
- 小书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深入浅出系列》
发表回复