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,"张三") //设置值
        .setEntity(log)//根据实体数据更改对应的值
        .update();//进行的操作


update()
        .eq(Entity::getId,"id") //条件项
		.set(Entity::getName,"张三") //设置值
        .setEntity(log)//根据实体数据更改对应的值
        .update();//进行的操作

注意点:

  • 更改值和query的一样,可以通过set参数,或者实体类

  • 进行更改操作的类型

    • update() 表示更新操作
    • remove() 表示删除操作
  • 其中更新操作,可以默认不写update()

注意点:

Mybatis-plus 链式开发
  • query()和update() 对 Entity::getId 这种表达 获取字段名的兼容并不好,

  • 建议使用 lambdaQuery()或者lambdaUpdate()

Mybatis-plus 链式开发
  • 但是lambdaQuery()和lambdaUpdate的条件判断参数对字符串兼容不好
  • 如果需要字段特殊处理的,建议用query(),update()
上一篇:树节点工具


下一篇:Vue项目 课程筛选 方向、分类、难度、最新、最热、价格升降