一,MybatisPlus基礎
1.1要使用mybatisPlus需要的兩個步驟;
1.引入MybatisPlus的依賴
點選檢視程式碼
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
因為此依賴包含了mybatis的起步依賴,所以完全可以代替mybatis的起步依賴。
2.對mapper的定義
在我們自己定義的mapper介面中,讓介面實現BaseMapper介面,BaseMapper中已經定義了基本的CRUD方法(單表),可以直接使用。
BaseMapper中的方法:
注意:繼承的BaseMapper的時候需要指定泛型,這樣才能知道方法針對的表,示例:
1.2常用註解:
- @TableName(實體類中使用)
是表名標註,標註實體類中對應的表。 - @TableId(實體類中使用)
是實體類的主鍵註解,標明實體類中的主鍵。
本註解中有一個經常使用的屬性,IdType
- @TableField(在實體類中使用)
是普通欄位上面的註解,一般情況是不需要使用這個註解,在特殊情況下使用:
2.1較複雜的方法
以上都是一些簡單的CRUD,還有更多相對複雜的方法,在使用這些複雜方法的時候,除了新增方法,其他方法都會使用到查新條件,也就是where條件,示例如下:
所有我們可以使用條件構造器作為Wrapper條件。
wrapper是條件構造的抽象類,有很多的實現類,Wrapper的實現類的繼承關係如下:
其中QueryWrapper在父類AbstractWrapper的基礎上增加了selet方法,允許查詢指定的欄位。
其中UpdateWrapper在父類AbstractWrapper的基礎上增加了set方法,允許指定SQL中的set部分。
2.2複雜方法的實際使用
2.2.1QueryWrapper的使用:
這個類的使用不僅限於查詢,還可以在刪除和修改的時候使用。
查詢:查詢出名字中帶o的,存款大於等於1000元的人。
點選檢視程式碼
@Test
void testQueryWrapper() {
// 1.構建查詢條件 where name like "%o%" AND balance >= 1000
QueryWrapper<User> wrapper = new QueryWrapper<User>()
.select("id", "username", "info", "balance")
.like("username", "o")
.ge("balance", 1000);
// 2.查詢資料
List<User> users = userMapper.selectList(wrapper);
users.forEach(System.out::println);
}
更新:更新使用者名稱為jack的使用者的餘額為2000。
點選檢視程式碼
@Test
void testUpdateByQueryWrapper() {
// 1.構建查詢條件 where name = "Jack"
QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username", "Jack");
// 2.更新資料,user中非null欄位都會作為set語句
User user = new User();
user.setBalance(2000);
userMapper.update(user, wrapper);
}