本文為一個系列中的第五節,前四節通路如下位址:
- 小書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,并實作序列化接口。
@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("[email protected]");
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深入淺出系列》