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()
posted @ 2022-01-29 10:46  PerfectLi  阅读(2170)  评论(0编辑  收藏  举报