• 初识Spring Data JPA


    spring data jpa介绍

    spring data jpa官方文档
    Spring Data JPA 是更大的 Spring Data 家族的一部分,可以轻松实现基于 JPA 的存储库。该模块处理对基于 JPA 的数据访问层的增强支持。它使构建使用数据访问技术的 Spring 驱动的应用程序变得更加容易。

    实施应用程序的数据访问层已经很麻烦了。必须编写太多样板代码来执行简单的查询以及执行分页和审计。Spring Data JPA 旨在通过减少实际需要的工作量来显着改进数据访问层的实现。作为开发人员,您编写存储库接口,包括自定义查找器方法,Spring 将自动提供实现。

    ORM框架对比

    ORM框架优点缺点
    MyBatisMyBatis是Apache的一个开源项目iBatis,其着力与POJO与SQL之间的映射关系,可以进行更为细致的SQL编写,使用起来十分灵活,上手简单,容易掌握,目前市场占有率最高,比较适合互联网公司的API场景工作量比较大,需要各种配置文件和SQL语句
    HibernateHibernate是一个开发源码的对象关系映射框架,它对JDBC进行非常轻量级的对象封装,使得JAVA开发人员可以随心所欲使用面向对象思想进行操控数据库,有自己的HQL语言,数据库移植行好,Hibernate是完备的ORM框架,符合JPA规范,有自己的缓存机制上手比较难,符合企业级的应用系统开发
    Spring Data JPA可以理解为对JPA的再次封装,底层还是使用了Hibernate的JPA技术实现,应用JPQL查询语言,属于Spring生态,上手简单,开发效率高,对对象的支持较好,有很大的灵活性入门简单,上手快,但是想要精通就需要了解很多东西
    OpenJPAApache开源组织提供的一个开源项目,它实现了EJB3.0的JPA标准,为开发提供强大的功能、使用简单的持久化框架功能、性能、普及性等方面需要加大力度,所以使用的人不是太多
    QueryDSLQueryDSL是一个对ORM框架扩展的操作,提供了一种通用的Util和方法来来构建查询参数的API,提供统一的抽象

    Java Persistence API 介绍和开源实现

    JPA 是 JDK 5.0 新增的协议,通过相关持久层注解(@Entity 里面的各种注解)来描述对象和关系型数据里面的表映射关系,并将 Java 项目运行期的实体对象,通过一种Session持久化到数据库中。

    JPA 的宗旨是为 POJO 提供持久化标准规范,可以集成在 Spring 的全家桶使用,也可以直接写独立 application 使用,任何用到 DB 操作的场景,都可以使用,极大地方便开发和测试,所以 JPA 的理念已经深入人心了。Spring Data JPA、Hibernate 3.2+、TopLink 10.1.3 以及 OpenJPA、QueryDSL 都是实现 JPA 协议的框架,他们之间的关系结构如下图所示:

    JPA 的内容分类:

    Spring Data 认识

    Spring Data 利用一个大家熟悉的、一致的、基于“注解”的数据访问编程模型,做一些公共操作的封装,它可以轻松地让开发者使用数据库访问技术,包括关系数据库、非关系数据库(NoSQL)。同时又有不同的数据框架的实现,保留了每个底层数据存储结构的特殊特性。包含如下模块:

    • Spring Data主要使用的一些模块,根据需要选择对应的一些功能模块。
    • Spring Data common- 支持每个Spring Data模块的Core Spring概念。
    • Spring Data JDBC- 对JDBC的Spring Data存储库支持。
    • Spring Data JPA - 对JPA的Spring Data存储库支持。
    • Spring Data MongoDB - 对MongoDB的基于Spring对象文档的存储库支持。
    • Spring Data Redis - 从Spring应用程序轻松配置和访问Redis。
    • Spring Data JDBC Ext- 支持标准JDBC的数据库特定扩展,包括对Oracle RAC快速连接故障转移的支持,AQ JMS支持以及对使用高级数据类型的支持。
    • Spring Data KeyValue - Map基于库和SPI轻松建立键值存储一个Spring数据模块。
    • Spring Data LDAP - 对Spring LDAP的 Spring Data存储库支持。
    • Spring Data REST- 将Spring Data存储库导出为超媒体驱动的RESTful资源。
    • Spring Data for Pivotal GemFire - 轻松配置和访问Pivotal GemFire,实现高度一致,低延迟/高吞吐量,面向数据的Spring应用程序。
    • Spring Data for Apache Cassandra- 轻松配置和访问Apache Cassandra或大规模,高可用性,面向数据的Spring应用程序。
    • Spring Data for Apace Geode- 轻松配置和访问Apache Geode,实现高度一致,低延迟,面向数据的Spring应用程序。
    • Spring Data for Apache Solr- 为面向搜索的Spring应用程序轻松配置和访问Apache Solr。
  • 相关阅读:
    思考如何完成一个审批流
    [Geek Challenge 2022] crypto部分
    在vue使用class选择器和下标更改点击列表样式
    图扑软件数字孪生油气管道站,搭建油气运输管控平台
    centos7 安装docker 步骤整理
    前端培训丁鹿学堂:前端面试之vue2和vue3的区别
    【考研数学】数学一“背诵”手册(一)| 高数部分(2)
    “蔚来杯“2022牛客暑期多校训练营4 E - Jobs (Hard Version)
    SpringBoot项目启动时预加载
    Numpy基础教程
  • 原文地址:https://blog.csdn.net/qq_39408435/article/details/125988302