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单向关联产生的一系列问 ...
随机推荐
- StringUtils的Join函数
有一天看到同事用了这么个函数,然而我并没有见过,所以查了查,以后说不定用得到. 包路径:org.apache.commons.lang3.StringUtils; 函数名:StringUtils.jo ...
- 2、Python 接口框架
common:存放通用的工具类 config:存放配置文件信息 result:存放result.html run_suite.py:最后执行的文件 1.excel_util:利用 openpyxl 进 ...
- Java 基础 - 单行初始化数组 Initialize array in one line
Code: public class ClassName { private char[] value = new char[]{'a','b'}; private char[] value2 = { ...
- clickhouse高可用-节点宕机数据一致性方案-热扩容
1. 集群节点及服务分配 说明: 1.1. 在每个节点上启动两个clickhouse服务(后面会详细介绍如何操作这一步),一个数据分片,一个数据备份,为了确保宕机数据一致性,数据分片和数据备份不能同一 ...
- C/C++ GBK和UTF8之间的转换
{ 关于GBK和UTF-8之间的转换,很多初学者会很迷茫. 一般来说GBK和UTF-8是文字的编码方式,其对应的内码是不一样的,所以GBK和UTF-8的转换需要对内码进行一一映射,然后进行转换. 对于 ...
- 深入理解Magento - 第一章 - Magento强大的配置系统
深入理解Magento 作者:Alan Storm翻译:zhlmmc 前言第一章 - Magento强大的配置系统第二章 - Magento请求分发与控制器第三章 - 布局,块和模板第四章 - 模型和 ...
- CentOS 7.2 安装MySQL 5.7
CentOS 7之后的版本yum的默认源中使用MariaDB替代原先MySQL,因此安装方式较为以往有一些改变: 下载mysql的源 wget http://dev.mysql.com/get/mys ...
- 测试使用python的用途
使用Python:1. 分析日志,尤其是服务器端日志.脚本就是短小精悍的2. 用来生成测试数据,比如生成随机的10w个词,很麻烦:如果找一个字库,存在数表里,然后用Python取数据3. 做数据发出的 ...
- php 如何实现 数据库 连接池
php 如何实现 数据库 连接池 一.总结 一句话总结: php+sqlrelay+mysql实现连接池及读写负载均衡 master-slave模式增加并发. sqlrelay 解决连接池问题以及实现 ...
- ArcGIS version not specified.
问题 在调用arcgis10 的ISurface用来取指定航线的地形时,这段代码在加载.dem时总是出错. 报: Fail to open raster dataset 解决方法: 在窗体中加载Map ...



