Spring Data之Example<>
简单CRUD之Example动态查询
简单介绍 (部分口水话,部分来自网络,代码永远自产)
使用过Spring全家桶的各位大佬应该都知道,Spring Data这个是Spring对持久层框架的封装,比如Spring Data Redis、Spring Data Mongo等,今天我们来学习一下他的动态查询Example
Example的官方介绍
Example是一个按照实列查询的技术,称为QBE,他允许我们创建动态的查询条件,持久层的框架我们常用的MyBatis的通用Mapper,Hibenate(好久没用过了),都支持这种映射关系,所以Spring Data也必须得支持这种提高效率的功能,
他可以实现我们不用写数据库的sql语句就可以查询到我们想要的数据,太复杂的除外...
Example 的组成
条件实列:第一个当然就是我们封装条件的实列了,一般由前端发过来,我们可对其封装
ExampleMatcher:对于条件实列中某些字段的匹配条件的设置,比如包含,以...开始/结束等
Example:由条件实列和ExampleMatcher组成,用于查询
适用范围
使用一组静态或者动态条件插叙数据库
频繁重构域对象,而不必担心破坏现有查询
独立于地测光输出储存IP工作(不明白)
按列查询(QBE)的限制
不支持嵌套或者分组的属性约束
仅支持字符串的开始/包含/结束/正则以及其他属性的精确匹配,也就是说对String类型的查询支持力度大
自产代码
上面这段代码我在其中的注释已经写的很明白,
我们对条件实列封装了是哪个条件,有两个是精确匹配,有一个单独设置了包含查询,
最后我们还对查询结果进行分页查询,条件匹配器的的API
而且在1.8y引入了Lamda表达式后,还进行了代码简化:
简单总结
对于Example可以快速构建一一个动态查询,并且根据Pageable可以快速实现分页插叙功能
Exampled对字符串支持的查询条件颇多,但对于其他类型,仅支持精确匹配
如果想要复杂一点的查询,我们还得继承另一个接口,用另一个API,今天先写到这儿,后面用到再写
Spring Data之Example<>的更多相关文章
- 快速搭建springmvc+spring data jpa工程
一.前言 这里简单讲述一下如何快速使用springmvc和spring data jpa搭建后台开发工程,并提供了一个简单的demo作为参考. 二.创建maven工程 http://www.cnblo ...
- spring boot(五):spring data jpa的使用
在上篇文章springboot(二):web综合开发中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法以及注意事项 使用spr ...
- MongoDB分组汇总操作,及Spring data mongo的实现
转载请在页首注明作者与出处 一:分组汇总 1.1:SQL样例 分组汇总的应用场景非常多,比如查询每个班级的总分是多少,如果用关系形数据库,那么sql是这样子的 ),class from score g ...
- 转:使用 Spring Data JPA 简化 JPA 开发
从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示 ...
- 一步步学习 Spring Data 系列之JPA(一)
引入: Spring Data是SpringSource基金会下的一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得数据库的访问变得方便快捷,并支持map-reduce框架和云计算数据服 ...
- 一步步学习 Spring Data 系列之JPA(二)
继上一篇文章对Spring Data JPA更深( )一步剖析. 上一篇只是简单的介绍了Spring Data JPA的简单使用,而往往在项目中这一点功能并不能满足我们的需求.这是当然的,在业务中查询 ...
- 深入浅出学Spring Data JPA
第一章:Spring Data JPA入门 Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷,并支持map ...
- 记录分享公司Spring data相关配置
起因 公司Spring Data相关的配置还是有点意思的,不过蛮复杂的...XML很多...我不太喜欢强行记住....所以我打算记录一下配置的大致思路和结构,以后可能会有用.... 总体结构 总体结构 ...
- spring data jpa 调用存储过程
网上这方面的例子不是很多,研究了一下,列出几个调用的方法. 假如我们有一个mysql的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `plus1in ...
- Spring Data JPA 学习记录1 -- 单向1:N关联的一些问题
开新坑 开新坑了(笑)....公司项目使用的是Spring Data JPA做持久化框架....学习了一段时间以后发现了一点值得注意的小问题.....与大家分享 主要是针对1:N单向关联产生的一系列问 ...
随机推荐
- Codeforces 346D Robot Control DP spfa 01BFS
题意及思路:https://www.cnblogs.com/zjp-shadow/p/9562888.html 这题由于性质特殊,可以用01BFS来进行DP的转移. 代码: #include < ...
- CSP 初赛复习 密码
CSP 初赛复习 密码是\(xj\)机房学生端密码
- 每天一个Linux命令:ls(1)
ls ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录). 格式 ls [-alrtAFR] [name...] 参数选项 参数 备注 -a 列出目录下的所有文件,包括以 . ...
- JS中的call()、apply() 以及 bind()方法用法总结
JS中的call()方法和apply()方法用法总结 : 讲解: 调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域. function add(c,d){ return thi ...
- Golang 标准库提供的Log(一)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://gotaly.blog.51cto.com/8861157/1405754 G ...
- 互斥锁Demo
#include <stdio.h> #include <pthread.h> pthread_t work1Id; pthread_t work2Id; ; ; pthrea ...
- jmeter 参数化3种
一.利用函数助手获取参数值 选项->函数助手对话框 __CSVRead, __Random, 生成的函数字符串:${__Random(,,)}第一个参数为随机数的下限,第二个参数为随机数的上限, ...
- Elasticsearch介绍和安装与使用
转载:https://blog.csdn.net/weixin_42633131/article/details/82902812 1.Elasticsearch介绍和安装 1.1.简介1.1.1.E ...
- C++——类
1.类和结构体,只有的默认访问权限的区别 2.类内不能定义和类外类型名相同的类型名.为什么?typedef机制? typedef double money; class Account { priva ...
- 【React-Native】---Android环境配置
一.前言 本文主要内容是在Window系统下配置Android APP的开发环境,要配置RN的Android开发环境需要3个依赖 1.JDK(版本必须是 1.8) 2.Node(版本必须高于8.3) ...



