当前位置: 首页 > news >正文

MyBatisPlus-02

一 查询条件的三种

1.按条件查询

 //方式一:按条件查询QueryWrapper qw = new QueryWrapper();qw.lt("age",18);List<User> userList = userDao.selectList(qw);System.out.println(userList);

2.lambda格式按条件查询

//方式二:lambda格式按条件查询QueryWrapper<User> qw = new QueryWrapper<User>();qw.lambda().lt(User::getAge, 10);List<User> userList = userDao.selectList(qw);System.out.println(userList);

3.lambda格式按条件查询2

 //方式三:lambda格式按条件查询LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();lqw.lt(User::getAge, 10);List<User> userList = userDao.selectList(lqw);System.out.println(userList);

二.并且与或者的关系

 LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();//并且关系:10到30岁之间//lqw.lt(User::getAge, 30).gt(User::getAge, 10);//或者关系:小于10岁或者大于30岁lqw.lt(User::getAge, 10).or().gt(User::getAge, 30);List<User> userList = userDao.selectList(lqw);System.out.println(userList);

三 null值的处理

在进行条件查询时,如果条件封闭不彻底则会出现null值。

初始:新建一个query包下的query类,继承要添加上下限的实体类,内部属性:年龄,薪资等有范围的数据。

@Data
public class UserQuery extends User {private Integer age2;
}

1.if语句控制

 //模拟页面传递过来的查询数据UserQuery uq = new UserQuery();uq.setAge(10);uq.setAge2(30);//null判定LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();lqw.lt(User::getAge, uq.getAge2());if( null != uq.getAge()) {lqw.gt(User::getAge, uq.getAge());}List<User> userList = userDao.selectList(lqw);System.out.println(userList);

2.Lambda处理

    LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();//先判定第一个参数是否为true,如果为true连接当前条件
//        lqw.lt(null != uq.getAge2(),User::getAge, uq.getAge2());
//        lqw.gt(null != uq.getAge(),User::getAge, uq.getAge());lqw.lt(null != uq.getAge2(),User::getAge, uq.getAge2()).gt(null != uq.getAge(),User::getAge, uq.getAge());List<User> userList = userDao.selectList(lqw);System.out.println(userList);

四 查询投影

QueryWrapper适用于可以查询自定义字段的,有些如果不支持,则在dom层下的Mapper进行写入

QueryWrapper<User> lqw = new QueryWrapper<User>();lqw.select("count(*) as count, tel");lqw.groupBy("tel");List<Map<String, Object>> userList = userDao.selectMaps(lqw);System.out.println(userList);

五 条件查询

//条件查询LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();//等同于=lqw.eq(User::getName,"Jerry").eq(User::getPassword,"jerry");User loginUser = userDao.selectOne(lqw);System.out.println(loginUser);

六 范围查询

LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
//        //范围查询 lt le gt ge eq betweenlqw.between(User::getAge,10,30);List<User> userList = userDao.selectList(lqw);System.out.println(userList);

七 模糊查询

 LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
//        //模糊匹配 like,其中likeleft,likeright中的left和right是%匹配符的位置lqw.likeLeft(User::getName,"J");List<User> userList = userDao.selectList(lqw);System.out.println(userList);

更多查询条件设置参看  https://mybatis.plus/guide/wrapper.html#abstractwrapper

http://www.lryc.cn/news/198323.html

相关文章:

  • vscode中快速生成vue3模板
  • Liunx C运算符
  • 【反射】Class类
  • PyQt 问题记录
  • 云安全—责任共担
  • 使用Vscode终端设置window环境变量设置不上
  • 【微信小程序】自定义组件布局会议OA其他页面(附源码)
  • 如何使用 MiniGPT-v2
  • python -pandas -处理excel合并单元格问题
  • KT6368A的封装怎么画 原理图怎么画 资料怎么看 怎么下载呢
  • Linux杀掉僵尸进程方法
  • uniapp(uncloud) 使用生态开发接口详情1(创建项目)
  • Linux内核8. Linux内核的经典调试方式
  • react中如何对props传的参数进行必要的限制
  • Jmeter —— 接口之间关联调用(获取上一个接口的返回值作为下一个接口的请求参数)
  • Python 机器学习入门之K-Means聚类算法
  • 【jmeter】接口测试流程
  • RTOS(6)任务管理
  • 【UE5】 ListView使用DataTable数据的蓝图方法
  • Anthropic全球上线AI语言模型Claude 2;多模态系统:融合文本和图像的新前沿
  • pdf压缩文件怎么压缩最小?
  • 开源智能体来啦!港大团队发布OpenAgents,可以搞数据分析、聊天、支持200+插件
  • Prometheus metrics数据抓取解析
  • 【算法训练-排序算法 三】【排序应用】合并区间
  • 【iOS】计算器仿写
  • 华为认证 | 华为HCIE认证该怎样备考?
  • 10月份stable diffusion animatediff等插件使用指南,又来更新了
  • 抓包工具charles修改请求和返回数据
  • matlab中绘制 维诺图(Voronoi Diagram)
  • Mybatis TypeHandler 介绍及使用