我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用LamQuerWapper自定义SQL语句

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用LamQuerWapper自定义SQL语句

项目中需要实现自定义的查询,但是仍然想用QueryWrapper对象里面的那些查询。

案例一(java代码)

    LambdaQueryWrapper queryWrapper = new QueryWrapper()            .select("sex, ifnull(count(id), 0) AS num, CASE WHEN sex = 1 THEN '男' WHEN sex = 0 THEN '女' ELSE '未知' END AS sexStr").lambda();    queryWrapper.eq(xxxDO::getStatus, 0);    queryWrapper.groupBy(xxxDO::getSex);    List> mapList = getBaseMapper().selectMaps(queryWrapper);    Map registerNumMap = new HashMap<>(mapList.size());    for (Map map : mapList) {        String key = String.valueOf(map.get("sexStr"));        String num = String.valueOf(map.get("num"));        registerNumMap.put(key, num);    }

执行SQL

select sex, ifnull(count(id), 0) AS num, CASE WHEN sex = 1 THEN '男' WHEN sex = 0 THEN '女' ELSE '未知' END AS sexStr from xxx group by sex where status = 0

返回结果是一个list, 里面的map key是查询的属性名, value是参数值。伪代码示意:

list[0]

map[0] (sex=1) map[1] (num=5) map[2] (sexStr=男)

list[1]

map[0] (sex=1) map[1] (num=5) map[2] (sexStr=男)

示例二(代码)

SELECT * FROM t_employee WHERE DATE_FORMAT(birthday,'%Y-%m-%d')>='1993-02-09' AND DATE_FORMAT(birthday,'%Y-%m-%d')<='1994-04-09' AND NAME LIKE '李%'

执行SQL

@Testpublic void selectByQueryWrapper3(){  QueryWrapper queryWrapper=new QueryWrapper();  // QueryWrapper queryWrapper2=Wrappers.query();  queryWrapper.apply("DATE_FORMAT(birthday,'%Y-%m-%d')>={0} and DATE_FORMAT(birthday,'%Y-%m-%d')<={1}","1993-02-09","1994-04-09").likeRight("name","李");  List employeeList = employeeMapper.selectList(queryWrapper);  System.out.println(employeeList);}

sql实现:

SELECT * FROM t_employee WHERE NAME LIKE '李%' OR (email IS NOT NULL AND gender ='女')

mp实现:

@Testpublic void selectByQueryWrapper4(){  QueryWrapper queryWrapper=new QueryWrapper();  // QueryWrapper queryWrapper2=Wrappers.query();  queryWrapper.likeRight("name","李").or(wq->wq.isNotNull("email").eq("gender","女"));  List employeeList = employeeMapper.selectList(queryWrapper);  System.out.println(employeeList);}

案例三

查询姓李的并且邮箱不为空或者是女性的员工

sql实现:

SELECT * FROM t_employee WHERE NAME LIKE '李%' AND (email IS NOT NULL OR gender ='女')

mp实现:

@Testpublic void selectByQueryWrapper5(){  QueryWrapper queryWrapper=new QueryWrapper();  // QueryWrapper queryWrapper2=Wrappers.query();  queryWrapper.likeRight("name","李").and(wq->wq.isNotNull("email").or().eq("gender","女"));  List employeeList = employeeMapper.selectList(queryWrapper);  System.out.println(employeeList);}

案例四

查询属于编号1,2,3部门的并且薪水小于等于3500的员工 根据年龄从大到小排序显示

sql实现:

SELECT * FROM t_employee WHERE salary<=3500 AND departmentId IN (1,2,3) ORDER BY birthday ASC

mp实现:

@Testpublic void selectByQueryWrapper6(){  QueryWrapper queryWrapper=new QueryWrapper();  // QueryWrapper queryWrapper2=Wrappers.query();  queryWrapper.likeRight("name","李").and(wq->wq.isNotNull("email").or().eq("gender","女"));  List employeeList = employeeMapper.selectList(queryWrapper);  System.out.println(employeeList);}

来源地址:https://blog.csdn.net/qq_49511498/article/details/130215715

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用LamQuerWapper自定义SQL语句

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

下载Word文档

猜你喜欢

mybatis 使用自定义sql 语句

新建一个接口 SqlBaseMapper 封装常用的增删改查public interface SqlBaseMapper { /** * 查询单条数据返回Map * * @param sql sql语句 * @return
mybatis 使用自定义sql 语句
2020-02-22

java jpa怎么自定义sql语句

本篇内容介绍了“java jpa怎么自定义sql语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!java jpa自定义sql语句本篇只是为
2023-06-21

MyBatis ORM的SQL语句条件自定义SQL片段

MyBatis ORM 是一个优秀的持久层框架,它支持定制化 SQL 语句和 SQL 片段。在 MyBatis ORM 中,你可以使用动态 SQL 来实现条件自定义 SQL 片段。动态 SQL 允许你根据不同的条件生成不同的 SQL 语句。
MyBatis ORM的SQL语句条件自定义SQL片段
2024-09-11

MyBatis中怎么自定义SQL语句执行顺序

在MyBatis中,无法直接控制SQL语句的执行顺序,因为MyBatis是一个持久层框架,它的执行顺序是由其内部的执行流程控制的。但是可以通过自定义SQL语句的编写方式来间接控制SQL语句的执行顺序。一种方式是使用MyBatis的动态SQ
MyBatis中怎么自定义SQL语句执行顺序
2024-04-23

Vue2安装使用MonacoEditor方式(自定义语法,自定义高亮,自定义提示)

这篇文章主要介绍了Vue2安装使用MonacoEditor方式(自定义语法,自定义高亮,自定义提示),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-16

怎么使用sql语句设置主键自增

要使用SQL语句设置主键自增,可以通过以下步骤进行操作:1. 创建表时定义主键列的数据类型为自增型(例如,使用`INT AUTO_INCREMENT`)。2. 在创建表的时候,将主键列设置为主键(使用`PRIMARY KEY`关键字)。3.
2023-09-27

怎么使用spring data jpa自定义sql方式

本篇内容介绍了“怎么使用spring data jpa自定义sql方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!spring data
2023-06-22

怎么使用JPA自定义SQL查询结果

本篇内容介绍了“怎么使用JPA自定义SQL查询结果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JPA自定义SQL查询结果很多时候都会遇到自
2023-06-25

MySQL基础教程14 —— SQL语法之数据定义语句DDL

1. ALTER DATABASE语法 ALTER {DATABASE | SCHEMA} [db_name]alter_specification [, alter_specification] ...alter_specificatio
2022-05-17

sql begin语句怎么使用

在SQL中,BEGIN语句用于开始一个事务。事务是一组SQL语句,它们要么全部成功执行,要么全部失败回滚。在BEGIN语句之后,您可以编写一组SQL语句,然后使用COMMIT语句提交这些语句,或者使用ROLLBACK语句回滚这些语句。以下
sql begin语句怎么使用
2024-04-20

SQL语句中的ONDUPLICATEKEYUPDATE使用

本文主要介绍了SQL语句中的ONDUPLICATEKEYUPDATE使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2022-11-13

navicat怎么使用sql语句

在 navicat 中使用 sql 语句,首先在 sql 编辑器中编写语句,然后单击“执行”按钮或按 f9。具体操作包括:创建表、插入数据、更新数据和删除数据等。需要注意语法、大小写和转义字符等细节。Navicat 中使用 SQL 语句如
navicat怎么使用sql语句
2024-05-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录