【无标题】

原文网址:MyBatis-Plus--Wrapper--使用/教程/实例_IT利刃出鞘的博客-CSDN博客

简介
        本文介绍MyBatisPlus的条件构造器Wrapper的用法(有示例)。

        本文内容包括:条件大全;Wrapper类的关系;Wrapper的用法:QueryWrapper、LambdaQueryWrapper、LambdaQueryChainWrapper、UpdateWrapper、LambdaUpdateWrapper、LambdaUpdateChainWrapper。

条件构造器
见:Mybatis-Plus--条件构造器--详解/实例_IT利刃出鞘的博客-CSDN博客

Wrapper类的关系


介绍 

上图绿色框为抽象类abstract
蓝色框为正常class类,可new对象
黄色箭头指向为父子类关系,箭头指向为父类

wapper介绍

Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展示
AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper : Lambda 更新封装Wrapper
QueryWrapper : Entity 对象封装操作类,不是用lambda语法
UpdateWrapper : Update 条件封装,用于Entity对象更新操作

QueryWrapper
见:Mybatis-Plus--QueryWrapper--使用/实例_IT利刃出鞘的博客-CSDN博客

LambdaQueryWrapper
见:Mybatis-Plus--LambdaQueryWrapper--使用/实例_IT利刃出鞘的博客-CSDN博客

LambdaQueryChainWrapper
见:Mybatis-Plus--LambdaQueryChainWrapper--使用/实例_IT利刃出鞘的博客-CSDN博客

UpdateWrapper
根据 Entity 条件,更新记录

entity        实体对象 (set 条件值,不能为 null)                                  
updateWrapper 实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)

public void update() {
 
    //修改值
    User user = new User();
    user.setStatus(true);
    user.setName("zhangsan");
 
    //修改条件
    UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
    userUpdateWrapper.eq("name", "lqf");
    userUpdateWrapper.eq("email", "123@qq.com");
    int update = userMapper.update(user, userUpdateWrapper);
 
    System.out.println(update);
}
打印结果                                                                                                                                                                                                                                                          
==>  Preparing: UPDATE user SET name=?, status=? WHERE name = ?                                                                                                                                                                                                   
==> Parameters: zhangsan(String), true(Boolean), lqf(String)                                                                                                                                                                                                      
<==    Updates: 100                                                                                                                                                                                                                                               
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@56a4f272]                                                                                                                                                              
100                                                                                                                                                                                                                                                               
2018-10-02 15:08:03.928  INFO 7972 --- [       Thread-2] o.s.w.c.s.GenericWebApplicationContext   : Closing org.springframework.web.context.support.GenericWebApplicationContext@37313c65: startup date [Tue Oct 02 15:08:00 CST 2018]; root of context hierarchy 
2018-10-02 15:08:03.937  INFO 7972 --- [       Thread-2] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...                                                                                                                          
2018-10-02 15:08:04.053  INFO 7972 --- [       Thread-2] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.                                                                                                                            
                                                                                                                                                                                                                                                                  
Process finished with exit code 0                                                                                                                                                                                                                                 
不构造实体对象

假设只更新一个字段,使用updateWrapper 的构造器时也需构造一个实体对象,这样比较麻烦。可用updateWrapper的set方法 

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","shimin").set("age", 35);
 
Integer rows = userMapper.update(null, updateWrapper);
LambdaUpdateWrapper
简介

        数据更新相关的构造器(UpdateWrapper、LambdaUpdateWrapper、LambdaUpdateChainWrapper)使用方法类似于查询构造器(QueryWrapper、LambdaQueryWrapper、LambdaQueryChainWrapper),不同的是它增加了如下两个方法:

set:设置数据库字段值
setSql:设置 set 部分的 sql
LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(User::getName, "shimin").set(User::getAge, 34);
Integer rows = userMapper.update(null, lambdaUpdateWrapper);
LambdaUpdateChainWrapper
简介

本Wrapper只可更新数据。
典型用法是自定义Service并继承ServiceImpl,实现IService,然后自定义service实例直接用lambdaUpdate方法取得
所在包为:com.baomidou.mybatisplus.extension.conditions.update
(另一个包已标记为deprecated:com.baomidou.mybatisplus.extension.service.additional.update.impl)
更新数据:

LambdaUpdateChainWrapper<User> lambdaUpdateChainWrapper = new LambdaUpdateChainWrapper<>(userMapper);
boolean update = lambdaUpdateChainWrapper.eq(User::getName, "Iron Man").set(User::getAge, 20).update();
可用的更新

其他网址
条件构造器queryWrapper、updateWrapper_QingFeng-Li的博客-CSDN博客
Mybatis plus学习笔记(常用注解/条件构造器) - 知乎
————————————————
版权声明:本文为CSDN博主「IT利刃出鞘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/feiying0canglang/article/details/107216914

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值