• 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,今天先写到这儿,后面用到再写

  • 相关阅读:
    直方图均衡化
    minMaxLoc()
    opencv的掩膜案例
    【人脸检测——基于机器学习4】HOG特征
    【人脸识别——Dlib学习2】Face Landmark Detection
    【细碎知识2】sys.argv[]和format的学习
    【人脸检测——Dlib学习1】Face_detector_example
    【细碎知识1】io.imread和cv2.imread的区别
    【人脸检测——基于机器学习3】AdaBoost算法
    【人脸检测——基于机器学习2】Haar特性
  • 原文地址:https://www.cnblogs.com/msi-chen/p/11318600.html
Copyright © 2020-2023  润新知