官方文檔地址:https://baomidou.com/pages/10c804/#鏈式調用-lambda-式
1.官網案例
// 區分:
// 鏈式調用 普通
UpdateChainWrapper<T> update();
// 鏈式調用 lambda 式。注意:不支持 Kotlin
LambdaUpdateChainWrapper<T> lambdaUpdate();
// 等價示例:
query().eq("id", value).one();
lambdaQuery().eq(Entity::getId, value).one();
// 等價示例:
update().eq("id", value).remove();
lambdaUpdate().eq(Entity::getId, value).remove();
2. 使用說明
2.1 查詢操作
- 第一步:lambdaQuery() (或 query())初始化查詢鏈
- 第二步:條件項:eq,ne,lt等
- 第三步:結果集
lambdaQuery()//生成查詢鏈
.eq(Entity::getId, value)//條件項,wrapper接口對應的eq,gt,lt都可以使用
.one();//獲取的結果集
2.1.1 條件項
- 可以使用mybatis-plus中提供的參數,例如:eq,ne,lt
- 提供了第二種方式,傳入實體
eg:
Entity entity = Entity.builder()
.id(1)
.phone("1XXXXXXX")
.build();
lambdaQuery()
.setEntity(entity)
.one();
query()
.setEntity(entity)
.one();
2.1.2 結果集
- .one() 獲取一行數據
- .list() 獲取列表數據
- .count()獲取統計數據
除了上面,還可以使用
lambdaQuery().eq(1,1).getWrapper() 鏈式的獲取wrapper
2.2 更新操作
- 第一步:lambdaUpdate()(或update())初始化查詢鏈
- 第二步:條件項:eq,ne,lt等
- 第三步:需要更改的值
- 第四步:需要進行的操作
lambdaUpdate()
.eq(Entity::getId,"id") //條件項
.set(Entity::getName,"張三") //設置值
.update();//進行的操作
update()
.setEntity(conditionEntity)//進行查詢操作
.update(updateEntity);//進行的操作,需要更新的字段數據
注意點:
-
可以通過setEntity 傳需要的條件實體,默認判斷都是等於
-
進行更改操作的類型
- update() 表示更新操作
- remove() 表示刪除操作 -
可以通過.update(entity) 更新實體中的數據
注意點:

-
query()和update() 對 Entity::getId 這種表達 獲取字段名的兼容並不好,
-
建議使用 lambdaQuery()或者lambdaUpdate()

- 但是lambdaQuery()和lambdaUpdate的條件判斷參數對字符串兼容不好,
- 如果需要字段特殊處理的,建議用query(),update()