iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >MyBatisPlus QueryWrapper多条件查询及修改方法是什么
  • 854
分享到

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

2023-07-02 13:07:57 854人浏览 安东尼
摘要

这篇“mybatisPlus QueryWrapper多条件查询及修改方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇

这篇“mybatisPlus QueryWrapper多条件查询及修改方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MyBatisPlus QueryWrapper多条件查询及修改方法是什么”文章吧。

gt、ge、lt、le、isNull、isNotNull

大于 >

例: gt("age", 18) → age > 18

ge 大于等于 >=

例: ge("age", 18) → age >= 18

lt 小于 <

例: lt("age", 18) &rarr; age < 18

le 小于等于 <=

例: le("age", 18) &rarr; age <= 18

isNUll 字段 IS NULL

例: isNull("name") &rarr; name is null

isNotNull 字段 IS NOT NULL

例: isNotNull("name") &rarr; name is not null 

@Testpublic void queryWrapperOne() {    QueryWrapper<User> queryWrapper = new QueryWrapper<>();    queryWrapper.            isNull("name")            .ge("age", 23)            .isNotNull("email");    // 逻辑删除    int result = userMapper.delete(queryWrapper);    System.out.println(result);    // 最终的语句为:UPDATE user SET deleted=1 WHERE deleted=0 AND name IS NULL AND age >= ? AND email IS NOT NULL}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

eq、ne

eq 等于 =

例: eq("name", "老王") &rarr; name = '老王'

ne 不等于 <>

例: ne("name", "老王") &rarr; name <> '老王' 

@Testpublic void queryWrapperTwo() {    QueryWrapper<User> queryWrapper = new QueryWrapper<>();    queryWrapper.eq("name", "BNTang");    // selectOne:返回的是一条记录,当出现多条时会报错    User user = userMapper.selectOne(queryWrapper);    System.out.println(user);}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

between、notBetween

BETWEEN 值1 AND 值2

例: between("age", 18, 30) &rarr; age between 18 and 30

NOT BETWEEN 值1 AND 值2

例: notBetween("age", 18, 30) &rarr; age not between 18 and 30

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

allEq

allEq 全部 eq(或个别 isNull)

个别参数说明:

params: key 为数据库字段名, value 为字段值

如果想表示 null isNull,则在 value 取值的时候传入一个 null, 为 null 时调用 isNull 方法, 为false时则忽略value为null的,也就是不拼接 value 为 null 的查询条件字段

例1: allEq({id:1,name:"老王",age:null})&rarr;id = 1 and name = '老王' and age is null

例2: allEq({id:1,name:"老王",age:null}, false)&rarr;id = 1 and name = '老王'

@Testpublic void queryWrapperFour() {    QueryWrapper<User> queryWrapper = new QueryWrapper<>();    Map<String, Object> queryParamsMap = new HashMap<>();    queryParamsMap.put("id", 1373266771933462530L);    queryParamsMap.put("name", "BNTang");    queryParamsMap.put("age", 23);    queryWrapper.allEq(queryParamsMap);    List<User> users = userMapper.selectList(queryWrapper);    users.forEach(System.out::println);}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

个别参数说明

filter: 过滤函数, 是否允许字段传入比对条件中

params 与 null、IsNull 同上

例1: allEq((k,v) -> k.indexOf("a") >= 0, {id:1,name:"老王",age:null})&rarr;name = '老王' and age is null

例2: allEq((k,v) -> k.indexOf("a") >= 0, {id:1,name:"老王",age:null}, false)&rarr;name = '老王'

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

如上图可看到,只添加了一个 id 查询的条件因为我写的过滤条件为要包含 i 这个字符串,所以只有第一个 key, value 包含了所以就只添加了 id

like、notLike、likeLeft、likeRight

LIKE '%值%'

例: like("name", "王")&rarr;name like '%王%'

NOT LIKE '%值%'

例: notLike("name", "王")&rarr;name not like '%王%'

LIKE '%值'

例: likeLeft("name", "王")&rarr;name like '%王'

LIKE '值%'

例: likeRight("name", "王")&rarr;name like '王%'

@Testpublic void queryWrapperFive() {    QueryWrapper<User> queryWrapper = new QueryWrapper<>();    queryWrapper            .notLike("name", "BNTang")            .likeRight("email", "zq");    // 返回值是Map列表    List<Map<String, Object>> users = userMapper.selectMaps(queryWrapper);    users.forEach(System.out::println);}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

in、notIn、insql、notinSql、exists、notExists

字段 IN (value.get(0), value.get(1), ...)

例: in("age",{1,2,3})&rarr;age in (1,2,3)

字段 NOT IN (value.get(0), value.get(1), ...)

例: notIn("age",{1,2,3})&rarr;age not in (1,2,3)

字段 IN ( sql语句 )

例: inSql("age", "1,2,3,4,5,6")&rarr;age in (1,2,3,4,5,6)

例: inSql("id", "select id from table where id < 3")&rarr;id in (select id from table where id < 3)

字段 NOT IN ( sql语句 )

例: notInSql("age", "1,2,3,4,5,6")&rarr;age not in (1,2,3,4,5,6)

例: notInSql("id", "select id from table where id < 3")&rarr;id not in (select id from table where id < 3)

拼接 EXISTS ( sql语句 )

例: exists("select id from table where age = 1")&rarr;exists (select id from table where age = 1)

拼接 NOT EXISTS ( sql语句 )

例: notExists("select id from table where age = 1")&rarr;not exists (select id from table where age = 1) 

@Testpublic void queryWrapperSix() {   QueryWrapper<User> queryWrapper = new QueryWrapper<>();    queryWrapper.in("id", 1, 2, 3);    queryWrapper.inSql("id", "select id from user where id < 3");    // 返回值是Object列表    List<Object> users = userMapper.selectObjs(queryWrapper);    users.forEach(System.out::println);}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

or、and

拼接 OR

注意事项:

主动调用or表示紧接着下一个方法不是用and连接!(不调用or则默认为使用and连接)

例: eq("id",1).or().eq("name","老王")&rarr;id = 1 or name = '老王'

OR 嵌套

例: or(i -> i.eq("name", "李白").ne("status", "活着"))&rarr;or (name = '李白' and status <> '活着')

AND 嵌套

例: and(i -> i.eq("name", "李白").ne("status", "活着"))&rarr;and (name = '李白' and status <> '活着')

@Testpublic void queryWrapperSeven() {    // 修改值    User user = new User();    user.setAge(99);    user.setName("BNTang6666");    // 修改条件    UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();    userUpdateWrapper            .like("name", "BNTang")            .or()            .between("age", 20, 30);    int result = userMapper.update(user, userUpdateWrapper);    System.out.println(result);}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

嵌套 or、嵌套 and

@Testpublic void queryWrapperEight() {    // 修改值    User user = new User();    user.setAge(99);    user.setName("BNTang6666");    // 修改条件    UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();    userUpdateWrapper            .like("name", "A")            .or(i -> i.eq("name", "BNTang6666").ne("age", 20));    int result = userMapper.update(user, userUpdateWrapper);    System.out.println(result);}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

orderBy、orderByDesc、orderByAsc

排序:ORDER BY 字段, ...

例: orderBy(true, true, "id", "name")&rarr;order by id ASC,name ASC

排序:ORDER BY 字段, ... DESC

例: orderByDesc("id", "name")&rarr;order by id DESC, name DESC

排序:ORDER BY 字段, ... ASC

例: orderByAsc("id", "name")&rarr;order by id ASC,name ASC

@Testpublic void queryWrapperNine() {    QueryWrapper<User> queryWrapper = new QueryWrapper<>();    queryWrapper.orderByDesc("id");    List<User> users = userMapper.selectList(queryWrapper);    users.forEach(System.out::println);}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

last

无视优化规则直接拼接到 sql 的最后

注意事项:

只能调用一次, 多次调用以最后一次为准有 sql 注入的风险, 请谨慎使用

例: last("limit 1") 

@Testpublic void queryWrapperTen() {    QueryWrapper<User> queryWrapper = new QueryWrapper<>();    queryWrapper.last("limit 1");    List<User> users = userMapper.selectList(queryWrapper);    users.forEach(System.out::println);}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

指定要查询的列

@Testpublic void queryWrapperEleven() {    QueryWrapper<User> queryWrapper = new QueryWrapper<>();    queryWrapper.select("id", "name", "age");        List<User> users = userMapper.selectList(queryWrapper);    users.forEach(System.out::println);}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

set、setSql

SQL SET 字段

例: set("name", "老李头")

例: set("name", "")&rarr;数据库字段值变为空字符串

例: set("name", null)&rarr;据库字段值变为null

设置 SET 部分 SQL

例: setSql("name = '老李头'")

@Testpublic void queryWrapperTwelve() {    // 修改值    User user = new User();    user.setAge(10);    // 修改条件    UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();    userUpdateWrapper            .like("name", "A")            // 除了可以查询还可以使用set设置修改的字段            .set("name", "BNTang")            // 可以有子查询            .setSql(" email = '303158131@qq.com'");    int result = userMapper.update(user, userUpdateWrapper);    System.out.println(result);}

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

以上就是关于“MyBatisPlus QueryWrapper多条件查询及修改方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: MyBatisPlus QueryWrapper多条件查询及修改方法是什么

本文链接: https://www.lsjlt.com/news/342081.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatisPlus QueryWrapper多条件查询及修改方法是什么
    这篇“MyBatisPlus QueryWrapper多条件查询及修改方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2023-07-02
  • MyBatisPlus-QueryWrapper多条件查询及修改方式
    目录gt、ge、lt、le、isNull、isNotNulleq、nebetween、notBetweenallEqlike、notLike、likeLeft、likeRightin...
    99+
    2024-04-02
  • MyBatisPlus-QueryWrapper多条件查询以及修改
    MyBatisPlus-QueryWrapper多条件查询以及修改 文章目录 MyBatisPlus-QueryWrapper多条件查询以及修改gt、ge、lt、le、isNull、isNotNulleq、nebetween、not...
    99+
    2023-08-21
    java mysql
  • MybatisPlus条件查询方法全解
    1、是什么? MybatisPlus通过条件构造器可以组装复杂的查询条件,写一些复杂的SQL语句,从而简化我们的开发提升我们的开发效率 # 可以简单的理解为就是我们写SQL语句时where后面的条件where xxx.....
    99+
    2023-08-30
    java mysql 数据库
  • mongodb多条件查询的方法是什么
    在MongoDB中,可以使用$and和$or操作符来实现多条件查询。 使用$and操作符进行多条件查询: db.collecti...
    99+
    2024-03-08
    mongodb
  • lambdaQueryWrapper多条件嵌套查询方法是什么
    这篇文章主要讲解了“lambdaQueryWrapper多条件嵌套查询方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“lambdaQueryWrapper多条件嵌套查询方法是什么”吧...
    99+
    2023-06-26
  • sql多条件组合查询的方法是什么
    在SQL中,可以使用AND或者OR运算符来组合多个条件查询。AND运算符用于同时满足多个条件的查询,而OR运算符用于满足其中一个条件...
    99+
    2023-08-21
    sql
  • MybatisPlus分页查询与多条件查询介绍及查询过程中空值问题的解决
    目录前言一.分页处理1.调用方法传入参数获取返回值2.设置分页拦截器二.条件查询2.1通过QueryWrapper对象来执行分页查询2.2在QueryWrapper对象的基础上使用l...
    99+
    2022-11-13
    MybatisPlus分页查询 MybatisPlus多条件查询 MybatisPlus null
  • 【MybatisPlus】MP的分页查询、多条件查询以及查询过程中解决null的空值判定
    文章目录 前言一.分页处理1.调用方法传入参数获取返回值2.设置分页拦截器 二.条件查询2.1通过QueryWrapper对象来执行分页查询2.2在QueryWrapper对象的基础上使用lambda表达式2.3直接通过Lam...
    99+
    2023-08-25
    java spring mybatis
  • 什么是MySQL条件查询
    什么是MySQL条件查询?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、条件查询:根据条件过滤原始表的数据,查询到想要的数据语法:select  ...
    99+
    2023-06-15
  • sql查询并修改数据的方法是什么
    SQL查询和修改数据的方法是通过使用SQL语句来实现的。以下是一些常见的SQL查询和修改数据的方法:1. 查询数据:使用SELEC&...
    99+
    2023-09-13
    sql
  • mybatis中的count()按条件查询的方法是什么
    这篇文章主要介绍“mybatis中的count()按条件查询的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mybatis中的count()按条件查询的方法是什么”文章能帮助大家解决问题。...
    99+
    2023-06-26
  • mybatis collection 多条件查询的实现方法
    mybatis collection 多条件查询的实现方法 前言: 业务需要通过mybatis 查询返回嵌套集合,嫌多次查询太麻烦,用自带的高级查询解决问题,下边是代码,已测试通过。 说下自己的理解,就是一...
    99+
    2024-04-02
  • vlookup函数多条件查找的方法是什么
    要使用VLOOKUP函数进行多条件查找,可以使用多个函数嵌套,或使用ARRAYFORMULA函数。1. 使用多个函数嵌套:- 首先,...
    99+
    2023-09-29
    vlookup
  • MyBatis中多条件查询商品的三种方法及区别
    目录一、Sql语句设置多个参数有几种方式二、代码附上一、Sql语句设置多个参数有几种方式 1、散装参数:需要使用@Param标记Sql语句中占位符处的名称例如 #{name} ...
    99+
    2024-04-02
  • sql查询结果按条件排序的方法是什么
    在SQL中,可以使用ORDER BY子句对查询结果进行排序。ORDER BY子句可以按照一个或多个列进行排序,可以根据升序或降序排序...
    99+
    2023-09-16
    sql
  • ORACLE多条件统计查询的简单方法
    前几天要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析。一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该。 然后就开始百度,多种条件下的统计。然...
    99+
    2024-04-02
  • jpa多条件查询重写Specification的toPredicate方法
    目录Criteria查询基本概念Criteria查询基本对象的构建下面我们用两个示例代码来更深入的了解Spring Data JPA支持JPA2.0的Criteria查询,相应的接口...
    99+
    2024-04-02
  • mysql的join查询和多次查询方法是什么
    这篇文章主要讲解了“mysql的join查询和多次查询方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql的join查询和多次查询方法是什么”...
    99+
    2023-03-09
    mysql join
  • mongodb多表查询的方法是什么
    在 MongoDB 中,多表查询并不像关系型数据库那样直接支持 JOIN 操作。相反,通常需要使用聚合操作来执行多表查询。 以下是一...
    99+
    2024-04-09
    mongodb
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作