官方文档地址: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,"张三") //设置值
.setEntity(log)//根据实体数据更改对应的值
.update();//进行的操作
update()
.eq(Entity::getId,"id") //条件项
.set(Entity::getName,"张三") //设置值
.setEntity(log)//根据实体数据更改对应的值
.update();//进行的操作
注意点:
-
更改值和query的一样,可以通过set参数,或者实体类
-
进行更改操作的类型
- update() 表示更新操作
- remove() 表示删除操作
-
其中更新操作,可以默认不写update()
注意点:
-
query()和update() 对 Entity::getId 这种表达 获取字段名的兼容并不好,
-
建议使用 lambdaQuery()或者lambdaUpdate()
- 但是lambdaQuery()和lambdaUpdate的条件判断参数对字符串兼容不好,
- 如果需要字段特殊处理的,建议用query(),update()