MyBatisPlus中的likeLeft和likeRight

2023-05-16

在使用MyBatisPlus来匹配身份证后6位时遇到了likeLeft和likeRight的问题:

likeLeft时匹配最左边还是匹配最右边?

所以来一个简单的测试(通过打印 “成功/失败” 来判断)

MyBatisPlus代码:

    default boolean bindStudent(AppUserBindVO appUserBindVO){
        String idLastSix = appUserBindVO.getIdLastSix(); // 获取 appUserBindVO 对象的后六位字符串
        return exists(new LambdaQueryWrapperX<StudentDO>()
                .eqIfPresent(StudentDO::getStudentNumber,appUserBindVO.getNumber())
                .eqIfPresent(StudentDO::getName,appUserBindVO.getName())
                .eqIfPresent(StudentDO::getMobile,appUserBindVO.getMobile())
                .likeLeft(StudentDO::getIdCard, idLastSix)
        );
    }
    
    
    @Override
    public boolean bindStudent(AppUserBindVO appUserBindVO) {
        if (studentMapper.bindStudent(appUserBindVO)){
            System.out.println("绑定成功");
        }else System.out.println("绑定失败");
        return studentMapper.bindStudent(appUserBindVO);
    }

MySQL:

在这里插入图片描述


用Apifox通过身份证后6位请求,绑定成功

在这里插入图片描述

用Apifox通过身份证前6位请求,绑定失败

在这里插入图片描述


究其源码:

    public Children like(boolean condition, R column, Object val) {
        return this.likeValue(condition, SqlKeyword.LIKE, column, val, SqlLike.DEFAULT);
    }
   public Children likeLeft(boolean condition, R column, Object val) {
        return this.likeValue(condition, SqlKeyword.LIKE, column, val, SqlLike.LEFT);
    }

    public Children likeRight(boolean condition, R column, Object val) {
        return this.likeValue(condition, SqlKeyword.LIKE, column, val, SqlLike.RIGHT);
    }
    
//===============================================================================


    protected Children likeValue(boolean condition, SqlKeyword keyword, R column, Object val, SqlLike sqlLike) {
        return this.maybeDo(condition, () -> {
            this.appendSqlSegments(this.columnToSqlSegment(column), keyword, () -> {
                return this.formatParam((String)null, SqlUtils.concatLike(val, sqlLike));
            });
        });
    }
    
//==============================================================================


    public static String concatLike(Object str, SqlLike type) {
        switch(type) {
        case LEFT:
            return "%" + str;
        case RIGHT:
            return str + "%";
        default:
            return "%" + str + "%";
        }
    }


最后发现 LEFT 是在左边加 “%” , 所以likeLeft匹配的是右边

likeRight则是匹配左边,like则是都可以匹配

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatisPlus中的likeLeft和likeRight 的相关文章

  • elementUI+MybatisPlus日期查询

    elementUI 43 MybatisPlus日期查询 1 前端设置 在el date picker组件加入value format 61 34 yyyy MM dd 34 xff0c 选择日期后 xff0c 将值自动保存为yyyy MM
  • MyBatisPlus(一)概述介绍

    一 概述 需要的基础 xff1a 把MyBatis Spring SpringMVC学习了 为什么要学习它呢 xff1f MyBatisPlus 可以节省我们大量工作时间 xff0c 所有的CRUD 代码它都可以自动化完成 比如 xff1a
  • MybatisPlus学习(四)条件构造器Wrapper方法详解

    文章目录 前言 1 条件构造器 2 QueryWrapper 2 1 eq ne 2 2 gt ge lt le 2 3 between notBetween 2 4 like notLike likeLeft likeRight 2 4
  • Spring Boot整合Mybatis-Plus快速入门(二)

    之前快速搭建项目中 创建的类名与表名以及属性名都是一致的 所以mybatis plus可以根据类名以及属性名进行对应的操作 那么如果表名与属性名中不一致或属性名与列名不一致时我们应该怎么处理呢 这里mybatis plus为我们提供了很多注
  • Java学习 --- mybatisplus配置多数据源

    一 mybatisplus配置多数据源 spring 配置多数据源信息 datasource 配置数据源类型 dynamic 设置默认数据源或者数据源组 primary master strict false datasource mast
  • ClassNotFoundException: com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator

    测试类启动访问数据库报错 详细报错信息如下 java lang IllegalStateException Failed to load ApplicationContext at org springframework test cont
  • 【Mybatis-Plus】分页简单使用

    大纲 一 前期准备 1 创建测试表 用户并插入数据 2 导入mybatis plus依赖 3 连接数据库 application yaml 4 生成实体类 5 配置类 二 Mybatis Plus帮助文档分析 三 功能实现 1 总览目录结构
  • mybatisPlus之getById和selectById查询不出结果

    最终导致查询不出结果的原因可能有多种 我这里说出我遇到的一种原因 希望对你有帮助 我是因为在数据库添加了一个字段 没有及时地更新mapper xml中的resultMap导致的 大晚上的写代码 脑子不太好使 2 最近又遇到了一种情况 我数据
  • MybatisPlus自定义sql多表关联分页条件查询

    MybatisPlus自定义sql多表关联分页条件查询 mp封装了crud但是对应复杂sql还是需要自己定义 网上对于多表分页查询的mp描述不是很清楚 我在这里重新写一篇文章 1 数据库准备 需要实现的sql是两表关联条件查询 select
  • spring boot 2.0.3 mybatis升级mybatis-plus

    项目原来是使用mybtais durid 现升级为mybatis plus2 3 durid mysql 官方文档地址 请注意 mybatis plus3 0 的配置有变化 请查看官网文档 可能是旧的 或demo 步骤如下 1 引入pom
  • Mybatis-Plus(一)

    Mybatis Plus 一 最近在项目当中学习到了一种新的构建sql查询的技术 mybatis plus 相交与之前使用的example即先创建一个example对象 再根据这个对象创建一个criteria对象来说 这种方式更为简洁方便
  • Mybatis-plus开启sql日志打印

    第一种 mybatis plus 设置 mybatis plus configuration log impl org apache ibatis logging stdout StdOutImpl 开启sql日志 log impl org
  • mybatis-plus教程-Mybatis-Plus增删改查

    完整代码 https github com pbteach mybatis plus test Mybatis plus增删改查 通过前面的学习 我们了解到通过继承BaseMapper就可以获取到各种各样的单表操作 接下来我们将详细讲解这些
  • MyBatisPlus多表查询的问题

    1 问题描述 有一个Person表和一个Pay表 person表中的id与pay表中ID一致 可以定位到一个人的pay情况 目前是想根据部门id person表中的一个字段 找到本部门下的pay 2 代码实现 根据部门id查询出person
  • Mybatis-plus中操作JSON字段

    1 实体类上要加上自动映射 TableName value school autoResultMap true 2 json字段上加上json处理器 TableField value cover url typeHandler Jackso
  • mybatisPlus-wrapper使用

    创建测试类 import com baomidou mybatisplus core conditions query QueryWrapper import com plus mybatis mapper UserMapper impor
  • mybatis-plus 新增/修改实现自动填充指定字段

    需要修改的字段在模型类上添加 TableField fill FieldFill xxx 注解 FieldFill的选项 哪个字段在什么时候填充需要手动设置注解 新建一个MetaObjectHandler的实现类MyMetaObjectHa
  • 5.mybatisPlus自定义SQL

    今日内容 MP自带的条件构造器虽然很强大 有时候也避免不了写稍微复杂一点业务的sql 比如多表查询 那么那么今天说说MP怎么自定义sql语句吧 另外 除了下文提到的通过queryWrapper实现筛选以外 调用查询时 如果你需要做分页 通过
  • SpringBoot-基础篇复习(全)

    本文包含SpringBoot基础篇的所有知识点 大家一起来学习吧 开启一段新的旅程 加油吧 springboot是由Picotal团队提供的全新框架 用来简化spring的搭建和开发过程的配置 因为spring的配置比较繁琐 故引入了spr
  • 记录我的第一个MyBatis-Plus例子

    第一个MyBatis Plus例子 灰常简单 特此记录 第一步 数据库表 第二步 pom引入jar包 第三步 启动类 实体类 application properties 在编写一个mapper接口 第四步 编写测试类 执行结果如下图所示代

随机推荐

  • 麦克纳姆轮(麦轮)原理

    一 麦轮原理 麦克纳姆轮 xff1a 简称麦轮 xff0c 由轮毂和围绕轮毂的辊子组成 辊子 xff1a 没有动力的从动小滚轮 麦克纳姆轮辊子轴线和轮毂轴线夹角是45度 A轮 xff08 左旋 xff09 与B轮 xff08 右旋 xff0
  • 数据结构——二叉树的先中后序遍历

    本节内容为Bilibili王道考研 数据结构 P43 P45视频内容笔记 目录 一 二叉树的先中后序遍历 1 先中后序遍历 2 举例 3 先中后序遍历和前中后缀的关系 4 代码实现 5 求遍历序列 6 应用 xff1a 求树的深度 二 二叉
  • Ubuntu下使用sshfs/fusemount挂载/卸载远程目录到本地

    Ubuntu下使用sshfs挂载远程目录到本地 访问局域网中其他Ubuntu机器 在不同机器间跳来跳去 很是麻烦 如果能够把远程目录映射到本地无疑会大大方面使用 xff0c 就像Windows下的网络映射盘一样 在Linux的世界无疑也会有
  • 反向代理解决跨域问题

    为什么会产生跨域 js采用的是同源策略 同源策略是指浏览器的一项安全策略 xff0c 浏览器只允许js代码请求和当前所在服务器域名 xff0c 端口号协议相同的数据接口上的数据 xff0c 这就是同源策略 也就是说当协议 xff0c 域名
  • C++ auto关键字 和 基于范围的for循环 语法糖

    目录 auto关键字基于范围的for循环 auto关键字 在C 43 43 11中 xff0c 规定了一个关键字 xff1a auto 下面看一下auto的用法 xff1a span class token keyword int span
  • ubuntu下ROS2-foxy中安装serial串口包

    1 新开一个终端 ctrl 43 alt 43 t 2 因为ros2中还没有集成serial串口包 xff0c 所以需要第三方下载对应serial串口包 xff0c 新建一个文件夹 xff0c 包名字为第三方库 mkdir Third pa
  • 简单输出一个数组

    简单输出一个数组 xff0c 对于数组 xff0c 我想每一个初始C语言的人 xff0c 刚刚经历过了for循环的喜悦 xff0c switch的喜庆 xff0c for循环的挣扎 因此 xff0c 数组应运而来 xff0c 当头一击 xf
  • 详解strstr函数:查找子字符串函数及其模拟实现

    详解strstr函数 xff1a 在一个字符串中查找另一共字符串是否存在 xff01 对于strstr查找子字符串 xff0c 笔者如果不是对C语言学习的更加深入 xff0c 可能还是不知道有这个函数 xff01 xff01 xff01 之
  • 51--定时器/计数器,串口,中断的巧妙关系

    目录 什么是中断 什么是定时器计数器 什么是串口 开始 直接配置中断 中断 43 定时器 计数器 串口 43 中断 总结 中断查询次序号 xff1a 什么是中断 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的 xff0c 中
  • 字符串查找函数Strstr函数的实现(详细易懂)

    首先 xff0c 字符串查找函数是在目的字符串中查找源字符串的首次出现的具体位置 xff0c 若找到了便返回该位置的地址 xff0c 若没有找到 xff0c 则返回空指针NULL char strstr const char arr1 co
  • ROS安装与Rviz的摄像头视频采集与标定

    文章目录 一 ROS的安装与配置1 添加 ROS 软件源 xff0c 将下列命令输入到 Ubuntu 的终端执行2 添加密钥 xff0c 将下列命令输入到 Ubuntu 的终端执行3 安装desktop full4 初始化rostep5 设
  • ros2的基本使用/基础知识——ros2节点

    1 节点是什么 每个节点只负责单独的模块 xff08 例如 xff1a 控制车轮转动 xff1b 从激光雷达处获得数据 xff1b 处理激光雷达的数据 xff1b 负责定位 xff09 照相机 地盘 控制 2 节点之间如何交互 xff1f
  • SSH秘钥登录配置与系统日志管理

    配置 sshd 服务 SSH xff08 Secure Shell xff09 是一种能够以安全的方式提供远程登录的协议 xff0c 也是目前远程管理 Linux 系统 的首选方式 在此之前 xff0c 一般使用 FTP 或 Telnet
  • 关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案

    问题现象 xff1a root 64 gvt NUC6CAYH apt get install net tools E Could not get lock var lib dpkg lock frontend open 11 Resour
  • vscode报错vue/multi-word-component-names处理

    vue multi word component names是用于检测当前的组件名称是否使用驼峰或多单词命名 错误截图如下 xff1a 1 可以修改 eslintrc js文件的配置 module exports 61 root true
  • Android SDK的安装步骤

    1 Android SDK下载 https www androiddevtools cn 2 解压Android SDK压缩包 放在没有中文的目录里面 3 打开Android sdk windows文件夹 xff0c 双击SDK manag
  • Apollo control之PID算法

    Apollo studio 官网 xff1a Apollo开发者社区 baidu com 目录 1 PID简介 2 PID调参思路 3 代码 4 解决积分饱和的方法 4 1 IC 积分遇限削弱法 4 2 BC 反馈抑制抗饱和 1 PID简介
  • TCP通信模型(C语言实现)

    大家好 xff0c 我是练习编程时长两年半的个人练习生昆工第一ikun xff0c 今天我们来分享TCP通信模型 xff0c 并且用C语言实现它 目录 一 我们将实现三个示例功能 xff1a 二 TCP服务器搭建流程 xff08 1 xff
  • 场景文本识别中的字符感知采样与校正(Character-Aware Sampling and Rectification for Scene Text Recognition)

    摘要 由于形状和纹理变化较大 xff0c 曲面场景文本识别在多媒体社会中是一项具有挑战性的任务 以前的方法通过等距离采样提取和校正文本行来解决这一问题 xff0c 这忽略了字符级别信息并导致字符失真 为了解决这个问题 xff0c 本文提出了
  • MyBatisPlus中的likeLeft和likeRight

    在使用MyBatisPlus来匹配身份证后6位时遇到了likeLeft和likeRight的问题 xff1a likeLeft时匹配最左边还是匹配最右边 xff1f 所以来一个简单的测试 xff08 通过打印 成功 失败 来判断 xff09