zoukankan      html  css  js  c++  java
  • 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,今天先写到这儿,后面用到再写

  • 相关阅读:
    MySQL学习笔记
    Git常用命令
    MacBook Pro m1安装swoole PHP版本7.4
    斐波那契数列实现的2种方法
    归纳一些比较好用的函数
    阶乘的实现
    冒泡排序
    PHP上传图片
    PHPStorm常用快捷键
    DataTables的使用
  • 原文地址:https://www.cnblogs.com/msi-chen/p/11318600.html
Copyright © 2011-2022 走看看