当前位置: 首页 > 后端技术 > Java

Mybatisplus条件构造函数Wrapper详解

时间:2023-04-01 17:43:13 Java

Mybatisplus条件构造函数WrapperMyBatis-Plus官方介绍:MyBatis-Plus:是MyBatis的增强工具,在MyBatis的基础上,只做增强不做改动,为简化开发,提高效率而生。mybatis是一个用Java编写的持久层框架,它使用ORM来实现对结果集的封装。由于处理数据层自然需要大量的CURD,而条件构造函数作为MyBatis-Plus的一大特色,可以大大提高我们的开发效率。条件构造函数继承关系:Wrapper:顶层抽象类,条件构造抽象类--AbstractWrapper:继承自Wrapper的抽象类,用于查询条件封装,其中生成sql的条件---QueryWrapper:继承自AbstractWrapper的类,不支持lambda语法,用于查询----UpdateWrapper:继承自AbstractWrapper的类,不支持lambda语法,用于修改----AbstractLambdaWrapper:继承于AbstractWrapper的抽象类,使用Lambda语法统一处理解析列------LambdaQueryWrapper:继承于AbstractLambdaWrapper的类,支持lambda语法,用于查询------LambdaUpdateWrapper:继承于AbstractLambdaWrapper的类,支持lambda语法,用于修饰常用方法:方法描述等价例子eqEqual=eq("姓名","吕布")name="吕布"ne不等于<>ne("姓名","吕布")意思是:姓名<>"吕布"gt大于>gt("age","10")含义:年龄>10lt小于=ge("age","10")含义:年龄>=10le小于等于<=le("age","10")意思:age<=10betweenvalue1和value2betweenandbetween("age","10","18")意思:10<=age<=18notBetweennotbetweenvalue1andvalue2notbtweenandnotBetween("age","10","18")意思:18queryWrapper=newQueryWrapper();queryWrapper.eq("性别","男");列表<测试>resultList=testService.list(queryWrapper);或ListresultList=testService.list(Wrappers.query().eq("sex","Male"));使用LambdaQueryWrapper构造函数形式:LambdaQueryWrapperlambdaQueryWrapper=newLambdaQueryWrapper();lambdaQueryWrapper.eq(Test::getSex,"male");列表<测试>resultList=testService.list(lambdaQueryWrapper);或ListresultList=testService.list(Wrappers.lambdaQuery().eq(Test::getSex,"Male&quo吨;));修改id为'1001'的数据名称为'小张三'使用UpdateWrapper构造器形式:UpdateWrapperqueryWrapper=newUpdateWrapper();queryWrapper.eq("id","1001");queryWrapper.set("姓名","小张三");testService.update(queryWrapper);或者testService.update(Wrappers.update().eq("id","1001").set("name","小张三"));使用LambdaUpdateWrapper构造函数形式:LambdaUpdateWrapperlambdaUpdateWrapper=newLambdaUpdateWrapper();lambdaUpdateWrapper.eq(Test::getId,"1001");lambdaUpdateWrapper.set(Test::getName,"小张三");testService.update(lambdaUpdateWrapper);或testService.update(Wrappers.lambdaUpdate().eq(Test::getId,"1001").set(Test::getName,"小张三"));删除'sex'为'Male'的数据使用QueryWrapper构造器形式:QueryWrapperqueryWrapper=newQueryWrapper();queryWrapper.eq("性别","男");testService.remove(queryWrapper);或测试Service.remove(Wrappers.query().eq("sex","Male"));使用LambdaQueryWrapper构造函数形式:LambdaQueryWrapperlambdaQueryWrapper=newLambdaQueryWrapper();lambdaQueryWrapper.eq(Test::getSex,"Male");testService.remove(lambdaQueryWrapper);或testService.remove(Wrappers.lambdaQuery().eq(Test::getSex,"Male"));