Mybatis Plus条件构造器ConditionConstructor用法实例解析
理解:
原来叫条件构造器,我一直以为都是封装条件对象
即SQL的查询条件,不过都一样。
其目的是因为的实际的需求灵活多变,而我们的SQL的筛选条件也需要跟着变化,
但是有一些固定的字段固定的方式可以保证不变化,那么方法的参数的确定尤为重要
从单一的一个ID,一个String的属性,到一个类型的对象,最后到规范的接口
就是逐渐把可能的情况不断的抽象化,更具有泛用意义
Wrapper的常用方法:
eq方法,名称是equals的缩写,两个参数,一个是数据库表字段的名称,一个是表字段值
userQueryWrapper.eq("user_id", 9); // WHERE user_id = ?
重载方法首参数多加了一个布尔类型,名称condition,MybatisPlus是希望在这个条件成立的情况下装填筛选条件
如果这个条件是必选的也必将会调用的,那么就是使用上面的那种。
boolean condition的意义在于动态SQL,如果给了就执行,没有就不执行
一般在业务逻辑层编写的时候结合IF & ELSE应地制宜
userQueryWrapper.eq(false,"user_id", 9); // 这个false需要一个变量来灵活操控
不等于:
userQueryWrapper.ne("columnX","valueX"); // columnX != valueX || columnX <> valueX
between方法,即SQL的 WHERExx字段 BETWEEN值1 AND值2
注意,值1一定是小于值2的
userQueryWrapper.between("xxx表字段", 10, 65); // WHERE xx字段 BETWEEN 值1 AND 值2
大于小于、大于等于、小于等于
userQueryWrapper.gt("xx字段", 20); // WHERE columnX > valueX userQueryWrapper.lt("xx字段", 20); // WHERE columnX < valueX userQueryWrapper.ge("xx字段", 20); // WHERE columnX >= valueX userQueryWrapper.le("xx字段", 20); // WHERE columnX <= valueX
按字段排序:
可以是默认和N个字段,默认排序就表示ASC顺序从小到大
也可以指定排序方式,和自定的字段:
众多条件需要进行连接,无非就是AND & OR两种
一般只需要连续引用就表示这些一连串的条件是AND拼接,其中一个条件是可选的,就使用or方法处理
// WHERE xx字段 <= 20 AND columnX > valueX OR xxx表字段 BETWEEN 10 AND 65 userQueryWrapper.le("xx字段", 20).gt("columnX","valueX").or().between("xxx表字段", 10, 65);
如果我们需要更加明确的表示:则使用And方法进行条件嵌套处理:
参考地址:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
详解基于Mybatis-plus多租户实现方案
一.引言 小编先解释一下什么叫多租户,什么场景下使用多租户. 多租户是一种软件架构技术,在多用户的环境下,共有同一套系统,并且要注意数据之间的隔离性. 举个实际例子:小编曾经开发过一套支付宝程序,这套程序应用在不同的小程序上,当使用者访问不同,并且进入相对应的小程序页面,小程序则会把用户相关数据传输到小编这里.在传输的时候需要带上小程序标识(租户ID),以便小编将数据进行隔离. 当不同的租户使用同一套程序,这里就需要考虑一个数据隔离的情况. 数据隔离有三种方案: 1.独立数据库:简单来说就是一个
-
springboot2.3 整合mybatis-plus 高级功能
-学习并使用mybatis-plus的一些高级功能的用法例如: AR模式. 乐观锁 .逻辑删除 .自动填充.数据保护等功能 为了方便演示,咱们还是新建一个全新的项目 引入mp依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> &l
-
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
错误 Mybatis-Plus (简称MP) 是mybatis的一个增强工具,在mybatis的基础上只做增强不做改变,简化了开发效率.其实就是帮我们封装了一些简单的curd方法,可以直接调用,不必再重写这些简单的sql语句,类似JPA那样. 前两天创建了一个新项目,持久层框架用的是mybatis,同时引入mybatis-plus做增强工具,项目启动后,调用接口却发现报错了,报错的提醒如下: 错误的信息显示的是 "无效的绑定语句",报错的地方正是操作sql语句的方法,从网上查了一下答案
-
使用mybatis-plus-generator进行代码自动生成的方法
为了解放程序员的双手,减少重复性代码的编写,推荐使用插件:mybatis-plus-generator 进行代码自动生成.下面我将详细介绍通过mybatis-plus-generator 插件自动生成 controller.service.mapper.serviceImpl相关代码. 项目工程目录总览如下: 1. 使用 idea 创建 maven 项目,引入相关依赖,项目pom文件如下所示: <?xml version="1.0" encoding="UTF-8&qu
-
Mybatis plus中使用in查询出错如何解决
不想看我bb的直接点上面的 ''解决方法'' 我的情况是这样的,在使用mybatis plus提供的QueryWrapper方法里的in查询时,我的参数为类似"1,2,3,4"这样的字符串 //要查的参数 String masterIds = "81554,5654,55948,48945"; QueryWrapper<FpjyPauperInfo> pauperqw = new QueryWrapper<>(); pauperqw.in(&
-
Mybatis-Plus3.2.0 MetaObjectHandler 无法进行公共字段全局填充
问题描述 最近在做的这个项目架构组对于配置文件决定,采取的是 .xml 配置文件 一个数据中台项目,因为部署环境比较复杂,可能需要适配阿里.腾讯.开源等环境和机房,所以配置文件和启动类为三类 之前写的 MetaObjectHandler 都是采用的 SpringBoot 配置方式开发,突然换成 .xml 配置文件,还是有不少坑的,其中就有配置的 MetaObjectHandler 死活不起作用 ⬆️
-
Mybatis-plus实现主键自增和自动注入时间的示例代码
mybatis-plus依赖导入 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> 建议使用3.3.0后的版本. 导入mybatis-plus就不用导入mybatis了,冲突! 连接数据库 sp
-
基于Mybatis Plus实现代码生成器CodeGenerator
导入生成器需要的依赖坐标: <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>org.apache.velocity</gro
-
Mybatis Plus条件构造器ConditionConstructor用法实例解析
理解: 原来叫条件构造器,我一直以为都是封装条件对象 即SQL的查询条件,不过都一样. 其目的是因为的实际的需求灵活多变,而我们的SQL的筛选条件也需要跟着变化, 但是有一些固定的字段固定的方式可以保证不变化,那么方法的参数的确定尤为重要 从单一的一个ID,一个String的属性,到一个类型的对象,最后到规范的接口 就是逐渐把可能的情况不断的抽象化,更具有泛用意义 Wrapper的常用方法: eq方法,名称是equals的缩写,两个参数,一个是数据库表字段的名称,一个是表字段值 userQuer
-
mybatis plus条件构造器queryWrapper、updateWrapper
注明:上篇文章介绍了springboot+mybatis-plus通用CRUD的用法,这篇文章我们来介绍一下mybatis-plus强大的条件构造器.mybatis-plus的版本为最新版3.0.3 .条件构造器咱们讲述queryWrapper和updateWrapper的用法.关系.以及强大之处. 首先在这里写下官方文档的链接位置,官方文档说的很详细.如果还想知道在项目中的具体用法请往下看. 一.条件构造器关系介绍 介绍 : 1.上图绿色框为抽象类abstract 2.蓝色框为正常class类
-
关于MyBatis plus条件构造器的逐条详解
目录 条件构造器 说明 警告 说明 allEq 个别参数说明 eq 实例 ne gt ge lt le between notBetween like notLike likeLeft likeRight isNull isNotNull in 例 例 notIn inSql notInSql groupBy orderByAsc 实例 orderByDesc orderBy having func or and nested apply-拼接SQL 实例 last exists notExis
-
Sql Server中Substring函数的用法实例解析
SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'
-
Python元字符的用法实例解析
反斜杠的作用: 要想将一个元字符^当一个普通字符处理,加反斜杠 例如: >>>import re >>>r=r'\^abc' >>>re.findall(r,'^abc ^abc ^abc') ['^abc','^abc','^abc'] \d匹配任何十进制数,它相当于类[0-9]. \D匹配任何非数字字符,它相当于类[^0-9] \s匹配任何空白字符,他相当于类[\t\n\r\f\v] \S匹配任何非空白字符,它相当于类[^\t\n\r\f\v] \
-
Python numpy线性代数用法实例解析
这篇文章主要介绍了Python numpy线性代数用法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 numpy中线性代数用法 矩阵乘法 >>> import numpy as np >>> x=np.array([[1,2,3],[4,5,6]]) >>> y=np.array([[7,8],[-1,7],[8,9]]) >>> x array([[1, 2, 3], [4
-
python定义类self用法实例解析
这篇文章主要介绍了python定义类self用法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在定义类的过程中,无论是显式的创建类的构造方法,还是向类中添加实例方法,都要将self参数作为方法的第一个参数. class Person: def __init__(self): print("正在执行构造方法") def study(self, name): print(name, "正在学python")
-
javascript作用域链(Scope Chain)用法实例解析
本文实例分析了javascript作用域链(Scope Chain)用法.分享给大家供大家参考,具体如下: 关于js的作用域链,早有耳闻,也曾看过几篇介绍性的博文,但一直都理解的模棱两可.近日又精心翻看了一下<悟透Javascript>这本书,觉得写得太深刻,在"代码的时空"一节里有一段介绍作用域链的地方寥寥数语,回味无穷(其实还是理解的模棱两可^_^).现在整理下自己的读书笔记,顺便借鉴网上资源,写下来. 一.从一个简单的问题说起 下面的js代码在页面中运行显示什么结果:
-
C#属性(Attribute)用法实例解析
属性(Attribute)是C#程序设计中非常重要的一个技术,应用范围广泛,用法灵活多变.本文就以实例形式分析了C#中属性的应用.具体入戏: 一.运用范围 程序集,模块,类型(类,结构,枚举,接口,委托),字段,方法(含构造),方法,参数,方法返回值,属性(property),Attribute [AttributeUsage(AttributeTargets.All)] public class TestAttribute : Attribute { } [TestAttribute]//结构
-
mysql派生表(Derived Table)简单用法实例解析
本文实例讲述了mysql派生表(Derived Table)简单用法.分享给大家供大家参考,具体如下: 关于这个派生表啊,我们首先得知道,派生表是从select语句返回的虚拟表.派生表类似于临时表,但是在SELECT语句中使用派生表比临时表简单得多,因为它不需要创建临时表的步骤.所以当SELECT语句的FROM子句中使用独立子查询时,我们将其称为派生表.废话不多说,我们来具体的解释: SELECT column_list FROM * (SELECT * column_list * FROM *
随机推荐
- 父div高度不能自适应子div高度的解决方案
- XPath入门 - XSL教程 - 3
- 图片img的src不变让浏览器重新加载实现方法
- React-Native做一个文本输入框组件的实现代码
- 多浏览器兼容性比较好的复制到剪贴板的js代码
- Bootstrap教程JS插件滚动监听学习笔记分享
- ASP.NET MVC 中实现基于角色的权限控制的处理方法
- asp实现图片右键滑轮控制大小的函数
- Log4j按级别输出日志到不同文件的实现方法
- JavaScript动态添加style节点的方法
- JS+DIV+CSS实现的经典标签切换效果代码
- Bootstrap基本组件学习笔记之进度条(15)
- xmlplus组件设计系列之路由(ViewStack)(7)
- 菜鸟javascript基础资料整理2
- 注册表应用100例—注册表使用全攻略之十一
- DotNet OnPreRender(EventArgs e) 事件常用的方法
- C#中动态显示当前系统时间的实例方法
- 数字金额大写转换器制作代码分享(人民币大写转换)
- PHP开发大型项目的一点经验
- 解析C#设计模式编程中外观模式Facade Pattern的应用