Mybatis Plus 鏈式編程


官方文檔地址: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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM