首页 > 其他分享 >MyBatisPlus——条件查询——null值处理与查询投影

MyBatisPlus——条件查询——null值处理与查询投影

时间:2023-04-04 14:34:03浏览次数:47  
标签:10 lqw MyBatisPlus users qw 30 查询 User null

DQL编程控制

条件查询——设置查询条件

  • 格式一:常规格式
		//方式一:按条件查询
		QueryWrapper qw = new QueryWrapper();
		// 10岁到30岁之间的用户
		qw.gt("age",10);
		qw.lt("age",30);
		List<User> users = userDao.selectList(qw);
		System.out.println(users);
  • 格式二:链式编程格式
		//方式一:按条件查询
		QueryWrapper qw = new QueryWrapper();
		// 10岁到30岁之间的用户
		qw.gt("age",10).lt("age",30);
		List<User> users = userDao.selectList(qw);
		System.out.println(users);
  • 格式三:lambda格式(推荐)
		//方式二:lambda格式按条件查询
		QueryWrapper<User> qw = new QueryWrapper();
		// 10岁到30岁之间的用户
		qw.lambda().gt(User::getAge,10).lt(User::getAge,30);
		List<User> users = userDao.selectList(qw);
		System.out.println(users);
  • 格式四:lambda格式(推荐)
		// 方式三:lambda格式按条件查询
		LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
		// 10岁到30岁之间的用户
		//lqw.gt(User::getAge,10).lt(User::getAge,30);
		// 小于10岁或者大于30岁的用户
		lqw.gt(User::getAge,30).or().lt(User::getAge,10);
		List<User> users = userDao.selectList(lqw);
		System.out.println(users);
  • 直接链式编程表示且关系
  • 要表示或关系需要在中间加上.or()
		// 小于10岁或者大于30岁的用户
		lqw.gt(User::getAge,30).or().lt(User::getAge,10);

条件查询——null值处理

  • 条件参数控制
		// 模拟页面传递过来的数据
		UserQuery uq = new UserQuery();
		//uq.setAge(10);
		uq.setAge2(30);

		// null值判定(尽量不用链式编程,过于长了)
		LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper();
		lqw.gt(null != uq.getAge(),User::getAge,uq.getAge());
		lqw.lt(null != uq.getAge2(), User::getAge,uq.getAge2());
		List<User> users = userDao.selectList(lqw);
		System.out.println(users);

查询投影

  • 只查询一部分字段
		// 查询投影——只查询部分字段
		LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper();
		lqw.select(User::getId,User::getName);
		List<User> users = userDao.selectList(lqw);
		System.out.println(users);
  • 若要完成模型类中未定义的属性或是分组查询,则不能使用lambda格式
		// 查询count(*)  不能使用lambda格式
		QueryWrapper<User> qw = new QueryWrapper();
		qw.select("count(*) as count, tle");
		qw.groupBy("tle");
		List<Map<String, Object>> userList = userDao.selectMaps(qw);
		System.out.println(userList);

 

标签:10,lqw,MyBatisPlus,users,qw,30,查询,User,null
From: https://www.cnblogs.com/1873cy/p/17286164.html

相关文章

  • 亿万级分库分表后如何进行跨表分页查询
    亿万级分库分表后如何进行跨表分页查询 目录全局表查询禁止跳页查询按日期的二次查询法大数据集成法NewSql法有序的二次查询法测试分页结果并行查询和排序 前言在常规的应用系统开发中,很少会涉及到需要对数据进行分库或者分表的操作,多数情况下,我们习惯使用OR......
  • MySQL带排序的分页查询优化
    MySQL带排序的分页查询优化需求在日常开发中,经常会遇到这么一种情况,一张表的数据量较大(500万左右)的时候,对其进行分页查询的时候,在分页比较深的情况下,查询效率会急剧下降。对于这种情况,我们需要做一些分页查询的优化。准备创建脚本CREATETABLEstudent(idINTNOTNULL......
  • ArcEngine|按属性查询
    按属性查询界面设计思路该属性查询界面思路如下:首先选择按属性查询方法,并打开功能界面;接着在“图层”下拉框中选择图层;图层选择好后,可从“字段”中选择该图层对应的查询字段,并可查看该字段的唯一值;使用按钮输入SQL查询语句,并可在下方的文本框中查看输入的SQL语句;命令编写完成......
  • Django笔记十五之in查询及date日期相关过滤操作
    这一篇介绍关于范围,日期的筛选inrangedateyearweekweekdayquarterhour1、inin对应于MySQL中的in操作,可以接受数组、元组等类型数据作为参数:Blog.objects.filter(id__in=[1,2,3])对应的SQL是:select*fromblog_blogwhereidin(1,2,3);字符串也可以作......
  • DQL分组查询
    DQL分组查询:1.语法:select字段列表from表名[where条件]groupby分组字段名[having分组后过滤条件];where和having的区别:执行时机不同:where是分组之前进行过滤,不满足wehere条件,不参与分组;而having是分组之后对结果进行过滤判断条件不同:where不能对聚合函数进行判断......
  • 【第27天】SQL进阶-查询优化- performance_schema系列实战三:锁问题排查(表级锁)(SQL 小虚
    回城传送–》《32天SQL筑基》文章目录零、前言一、什么是表级锁二、什么时候适合加表级锁三、实战演练3.1数据准备(如果已有数据可跳过此操作)3.2开启第一个会话,执行显式加表级锁3.3开启第二个会话,对该表执行update更新3.4开启第三个会话,查询线程信息3.5分析3.6释放第一个会话......
  • DQL查询
    DQL基本查询1.查询多个字段select字段1,字段2,字段3...from表名;select*from表名;2.设置别名select字段1[as别名],字段2[as别名],字段3[as别名]...from表名;3.去除重复记录selectdistinct字段列表from表名;DQL条件查询:select字段列表from表名......
  • 【功能与技巧】promethues通过记录规则持久化查询,存储rules表达式查询结果为采集指标
    一、查询持续性到目前为止,我们只是在表达式浏览器中运行查询。虽然查看该查询的输出很方便,但结果仍然是临时存储在Prometheus服务器上,我们可以通过以下三种方式使查询持久化: *记录规则:根据查询创建新指标*报警规则:从查询生成警报*可视化:使用Grafana等仪表板可视化查询......
  • OUI查询(MAC地址厂商查询)
    IEEEOUIhttps://standards-oui.ieee.org/MAC地址查询-在线工具https://itool.co/mac查询MAC地址厂商信息、制造商名称......
  • MyBatisPlus---delete删除操作的三种方法
    一、根据id删除1234567891011@Testpublic void deleteById(){    int rows=userMapper.deleteById(1351456313578713090L);    System.out.println("删除条数:" +rows);} @Testpublic void deleteByBatchIds(){    int row......