首先是.select

在MP查询中,默认查询所有的字段,如果有需要也可以通过select方法进行指定字段。其中要注意的细节:

wrapper.select("pname")
        .eq("pname","张三")
        .or().eq("price",300);
List<User> userList = userDao.selectList(wrapper);

使用select进行sql语句拼接时,不会识别在实体类中属性对应的操作:

SELECT pname FROM USER WHERE (pname = ? or price =? )

当数据库表中的字段名,与实体类对象的属性名不一致时

wrapper.select("pname as name")
        .eq("pname","张三")
        .or().eq("price",300);
List<User> userList = userDao.selectList(wrapper);

这样拼接出来的sql语句:

SELECT pname as name FROM user WHERE (pname = ? OR price = ? )

其他条件 

函数名 说明 例子
eq 等于 = 例:eq(“name”,“张三”) :name = ‘张三’
ne 不等于<> 例: eq(“name”,“老王”) —> name <> ‘老王’
gt 大于> 例:gt(“age”,18) —> age > 18
ge 大于等于>= 例:ge(“age”,18) —> age >= 18
lt 小于< 例:lt(“age”,18) —> age < 18
le 小于<= 例:le(“age”,18) —> age <= 18
between BETWEEN值1 AND值2 例:between(“age”,18,30) —> age between 18 and 30
notBetween NOT BETWEEN值1 AND值2 例: notBetween(“age”,18,30) —> age not between 18 and 30
like LIKE ‘%值%’ 例: like(“name”,“王”) —–> name like '%王%’
notLike NOT LIKE ‘%值%’ 例: notLike (“name”,“王”) —> name not like '%王%’
likeLeft LIKE '%值’ 例:likeLeft (“name”,“王”) —–> name like '%王’
likeRight LIKE’值%’ 例: likeRight(“name”,“王”) —> name like ‘王%’
isNull 字段IS NULL 例: isNul1 (“name”) —> name is null
isNotNull 字段IS NOT NULL 例: isNotNull(“name”) —> name is not null
in 字段IN (v0, v1,…) 例: in(“age”,{1,2,3} ) —–> age in (1,2,3)
notIn 字段NOT IN (v0, v1,…) 例: notIn(“age”,1,2,3) —> age not in (1,2,3)
inSql 字段IN ( sql语句) inSql(“id”, “select id from table where id < 3”) —–> id in (select id from table where id < 3)
notInSql 字段NOT IN ( sql语句) notInSql(“id”, “select id from table where id < 3”) —–> age not in (select id from table where id < 3)
groupBy 分组:GROUP BY 字段,… 例: groupBy(“id”, “name”) —> group by id, name
orderByAsc 排序:ORDER BY字段,… ASC 例: orderByAsc(“id”, “name”) —> order by id ASC, name ASC
orderByDesc 排序:ORDER BY 字段,…DESC 例: orderByDesc(“id”, “name”) —> order by id DESC, name DESC
orderBy 排序:ORDER BY字段,… 例: orderBy(true,true,“id”,“name”) —–> order by id ASC,name ASC
having HAVING ( sql语句) having(“sum(age) >{0}”,11) —> having sum(age) > 11
or 拼接OR 主动调用or表示紧接着下一个方法不是用and连接!(不调用or则默认为使用and连接)例:eq(“id”,1).or().eq(“name”,“老王”) —> id = 1 or name = '老王
and AND嵌套 例: and(i -> i.eq(“name”,“李白”).ne(“status”,“活着”)) —> and (name ='李白’ and status ’活着’)
apply 拼接sql 该方法可用于数据库函数动态入参的params对应前面sqlHaving内部的{index}部分.这样是不会有sql注入风险的,反之会有! 例: apply(“date_format(dateColumn, ‘%Y一%m-%d’) ={0}”, “2008-08-08”) —> date_format(dateColumn,’%Y一%m-%d’) = ‘2008-08-08’")
last 无视优化规则直接拼接到sql 的最后 无视优化规则直接拼接到sql 的最后只能调用一次,多次调用以最后一次为准有sql注入的风险,请谨慎使用例: last(“limit 1”)
exists 拼接EXISTS ( sql语句) —> exists (select id from table where age = 1)例: notExists(“select id from table where age = 1”) —>exists (select id from table where age = 1)
notExists 拼接NOT EXISTS ( sql语句) 例: notExists(“select id from table where age = 1”) —–> not exists (select id from table where age = 1)
nested 正常嵌套不带AND或者 OR 正常嵌套不带AND或者OR例: nested(i -> i.eq(“name”,“李白”).ne(“status”,“活着”)) —> (name = '李白’and status 活着’)

到此这篇关于mybatisPlus条件构造器常用方法的文章就介绍到这了,更多相关mybatisPlus条件构造器内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

mybatisPlus条件构造器常用方法小结的更多相关文章

  1. 寒城攻略:Listo 教你 25 天学会 Swift 语言 - 22 Extensions

    //***********************************************************************************************//1.Extensions(扩展)//___________________________________________________________________________________

  2. 【Swift初见】Swift构造过程

    构造过程是通过构造器来实现的,其实每个构造器就可以看作是一个函数,只是这个函数是为了执行初始化的。每个类都必须拥有一个指定构造器。

  3. Swift 2

    letlabel="Thewidthis"letwidth=94letwidthLabel=label+String练习:删除最后一行中的String,错误提示是什么?你可以一起使用if和let来处理值缺失的情况。switch支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等。运行switch中匹配到的子句之后,程序会退出switch语句,并不会继续向下运行,所以不需要在每个子句结尾写break。

  4. swift之inherit

    新的Bicycle类自动获得Vehicle类的特性,比如maxPassengers和numberOfWheels属性。Car重写了继承来的description方法,它的声明与Vehicle中的description方法一致,声明前面加上了override关键字。Car中的description方法并非完全自定义,而是通过super.desc

  5. swift之constructor

    所以我们将属性回答response声明为String?当SurveyQuestion实例化时,它将自动赋值为空nil,表明暂时还不存在此字符串。下面例子中创建了一个类ShoppingListItem,它封装了购物清单中的某一项的属性:名字、数量和购买状态purchasestate。上面例子中使用默认构造器创造了一个ShoppingListItem类的实例,并将其赋值给变量item。Swift可以根据这两个属性的初始赋值0.0自动推导出它们的类型Double。

  6. Swift教程16-使用Swift调用AFNetworking进行网络请求

    如何使用Swift进行网络请求呢?

  7. 五 Swift学习之扩展(Extension)

  8. Swift 构造器探究

    Swift构造器探究什么时候要用构造器?然而Swift的构造器又有两种,一种是designated构造器,一种是convenience构造器。所有designated构造器都必须初始化那些没有满足第一种情况的存储属性。具体怎么做请看后文Designated构造器对于结构体Swift中结构体和类的构造器其实差不多。构造器的继承designated构造器designated构造器在Swift中很常见,顾名思义这个构造器就是你类中所有构造器的“原型”。在这个构造器中只调用父类的designated构造器或者不调

  9. swift1.2新增和改动

    Swift语言的改变“确保转换”和“可失败转换”的概念现在被分为两个操作符。从桥接Objective-C类到它Swift中值类型的隐式转化被移除。这将是Swift的类型系统更加简单和可预测。柯里化函数现在可以指定参数标签了:Swift现在可以检测在Swift类型系统中覆盖和重写的差异以及通过Objective-C运行时可见的影响。

  10. Swift学习笔记-面向对象

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部