tkMapper之使用Weekend拼接条件进行条件查询
tkMapper之使用Weekend拼接条件进行条件查询
- 0. 引入
- 1. andEqualTo
- 2. andIn
- 3. andNotEqualTo
- 4. andNotIn
- 5. andGreaterThanOrEqualTo
- 6. andLike
- 7. 总结
0. 引入
我们在这里使用StudentInfo
实体类来进行举例:
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class StudentInfo {@Idprivate Long id;/*** 姓名*/private String name;/*** 手机号*/private String mobile;/*** 学号*/private String studentId;/*** 班级编号*/private String classId;/*** 创建时间*/private Date ctime;/*** 更新时间*/private Date mtime;/*** 删除标志 0:未删除 1:删除*/private Integer deleted_status;
}
1. andEqualTo
使用andEqualTo
语句,相当于使用where 字段名 = 某值
的SQL
语句
如果我们想查询班级编号为12345678
的学生,可以这样写:
Weekend<StudentInfo> weekend = Weekend.of(StudentInfo.class);
WeekendCriteria<StudentInfo, Object> weekendCriteria = weekend.weekendCriteria();
weekendCriteria.andEqualTo(StudentInfo::getClassId, "12345678");
weekendCriteria.andEqualTo(StudentInfo::getdeletedStatus, 0);
List<StudentInfo> infoList = studentInfoMapper.selectByExample(weekend);
因为预期能够查询到多名学生信息,因此应该使用selectByExample
,并使用List
来接收返回信息;
2. andIn
使用andIn
语句,相当于使用where 字段名 in 某值区间
的SQL
语句
如果我们想在学生班级编号为12345678
的基础上,查询出学号为0001
、0002
和0003
的同学,那么可以这样写:
Weekend<StudentInfo> weekend = Weekend.of(StudentInfo.class);
WeekendCriteria<StudentInfo, Object> weekendCriteria = weekend.weekendCriteria();
weekendCriteria.andEqualTo(StudentInfo::getClassId, "12345678");
List<String> studentIdList = Arrays.asList("0001", "0002", "0003");
weekendCriteria.andIn(StudentInfo::getStudentId, studentIdList);
weekendCriteria.andEqualTo(StudentInfo::getdeletedStatus, 0);
List<StudentInfo> infoList = studentInfoMapper.selectByExample(weekend);
3. andNotEqualTo
刚好与andEqualTo
相反;
4. andNotIn
刚好与andIn
相反;
5. andGreaterThanOrEqualTo
顾名思义,这个是大于等于,也可以用来按照数据的修改日期进行过滤,写法如下:
weekendCriteria.andGreaterThanOrEqualTo(StudentInfo::getMtime, DateUtils.transferString2Date(LocalDate.now().toString()));
其中,DateUtils.transferString2Date
方法可以参考我的另一篇文章:将String转为date,方便快捷;
6. andLike
可以使用andLike
进行模糊查询,但是要注意,模糊查询会进行全表扫描,速度缓慢,极易造成慢查询(关于慢查询,可以参考我的另一篇文章:什么是慢查询?如何优化?);
如果我们想查找所有的名字中带有红
的同学信息,可以这样写:
Weekend<StudentInfo> weekend = Weekend.of(StudentInfo.class);
WeekendCriteria<StudentInfo, Object> weekendCriteria = weekend.weekendCriteria();
weekendCriteria.andLike(StudentInfo::getName, "%" + "红" + "%");
weekendCriteria.andEqualTo(StudentInfo::getdeletedStatus, 0);
List<StudentInfo> infoList = studentInfoMapper.selectByExample(weekend);
如果数据库中要进行大量的模糊搜索、文本匹配,可以考虑使ElasticSearch
,ElasticSearch
是一个分布式、高性能、高可用、可伸缩、RESTful 风格的搜索和数据分析引擎。
7. 总结
在查询条件比较多的时候,我们可以灵活地将各个条件拼在一起,tkMapper
让我们在最大程度上避免了手写SQL
语句,极大地提升了我们的开发效率。
tkMapper之使用Weekend拼接条件进行条件查询相关推荐
- vue 之url拼接 根据选择条件动态修改url地址
vue 之url拼接 根据选择条件动态修改url地址 这里写的是某个项目中的一部分实现代码.. 如果需要学习 常见的动态路由可以看这篇文章:https://blog.csdn.net/ws199002 ...
- mysql高级查询之多条件的过滤查询
一.什么是高级查询: ① 多条件的过滤查询 简单说,即拼接sql语句,在sql查询语句之后使用: where 条件1 and/or 条件2 and/or 条件3 - ② 分页查询 二.多条件过滤查询: ...
- mysql多条件匹配模糊查询
mysql中通常的模糊查询使用like语句,但是有时候需要匹配多个条件进行模糊查询,like就无法满足了,比图所示,我们需要查询content字段中包含建设和统计的字段,like语句就无法满足了 所以 ...
- 什么是Karush-Kuhn-Tucker 最优化条件 (KKT 条件) 三个人名 独立发现的最优化条件
Karush-Kuhn-Tucker 最优化条件 (KKT 条件) 一般地,一个最优化数学模型能够表示成下列标准形式: 所谓 Karush-Kuhn-Tucker 最优化条件,就是指上式的最小点 x* ...
- Spring Data JPA 复杂/多条件组合分页查询
推荐视频: http://www.icoolxue.com/album/show/358 public Map<String, Object> getWeeklyBySearch(fina ...
- spring data jpa实现有条件的分页查询功能
spring data jpa实现有条件的分页查询功能 前端部分代码.发送请求: $('#grid').datagrid({iconCls: 'icon-forward',fit: true,bord ...
- 外连接就是允许不满足条件的字段查询出来
外连接就是允许不满足条件的字段查询出来 转载于:https://www.cnblogs.com/classmethond/p/10129069.html
- mysql null 查询条件_MySql当查询条件为空时不作为条件查询
之前遇到一个很麻烦的条件查询.就是有很多个条件,并且条件可能有,也有可能没有.又不是像mybatis那样又专门的SQL.xml文件,需要自己写sql文.这种情况下,需要去判断每个条件是不是为空,后来发 ...
- MongoDB多条件分组聚合查询
MongoDB多条件分组聚合查询 1.样例数据 {"_id" : ObjectId("5fa13fb76c3107345a82c047"),"_cla ...
最新文章
- Leader晋升失败,CTO说,没有商业敏感度,迟早被淘汰
- Pycharm回退操作+常用批量操作
- 前端获取浏览器标识_浏览器缓存机制
- 全球及中国水深测量声呐行业应用前景及未来投资决策建议报告2022-2027年
- 【学习笔记】分析函数(开窗函数)
- 坚持c++,真正掌握c++(4)
- 2019ICPC(上海) - Light bulbs(离散化+差分)
- 提高java效率_提高Java编程效率的一个技巧
- 数学家眼里的相同与不同
- C#面试题 之 判断质数
- Opencv实现多幅图片拼接在一起
- jquery的一点点认识
- vue富文本编辑器中上传图片
- 计算机维护费入什么会计科目,金税盘技术维护费计入什么科目_增值税
- php什么是耦合关系,什么是耦合
- excel取消密码_【Excel神技能】如何锁定Excel表中的公式,防止被修改?
- 深入理解5G SSB协议
- 计算机声音音乐小星星,迷你世界电路音乐教学 小星星音乐电路
- hexo+yilia进行SEO优化
- .net framework 4.0 在 VS2010 安装目录下位置 dotNetFx40_Full_x86_x64.exe在磁盘哪个目录?...
热门文章
- 说一说Windows严重安全漏洞CVE-2020-0601的原理
- linux ps 查看进程命令
- 支付漏洞的三种常见类型
- 命令行选项解析函数(C语言):getopt()和getopt_long()【转】
- 微星(MSI)笔记本安装ubuntu+win双系统
- 关于Redis分片机制说明
- 长周期行业-航运(1)-波罗的海指数高峰历史
- mysql federated 插件,通过mysql的federated插件实现dblink功能
- C++:实现量化可转换债券测试实例
- 数据埋点方案及注意事项