学习笔记:ElasticSearch搜索引擎-3. 第三章 SpringData集成

时间:2024-10-31 17:59:54

Spring Data 是一个用于简化数据库访问和增加数据访问层功能性的项目家族。它为各种数据存储(如关系型数据库、NoSQL数据库、云服务等)提供了统一的编程模型。Spring Data 的主要目标是使开发者能够更容易地构建Spring驱动的应用程序,而无需编写大量的数据访问代码。

对于关系型数据库,Spring Data JPA 是最常用的实现之一,它基于Java Persistence API (JPA) 提供了额外的功能。Spring Data可以极大的简化JPA(Elasticsearch…)的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了CRUD 外,还包括如分页、排序等一些常用的功能。

但Spring Data 的理念不仅限于JPA,它还为MongoDB、Cassandra、Redis等多种数据存储提供了支持

Spring Data官方网址:https://spring.io/projects/spring-data/

Spring Data 常用的功能模块如下:

  • Spring Data JDBC
  • Spring Data JPA
  • Spring Data LDAP
  • Spring Data MongoDB
  • Spring Data Redis
  • Spring Data R2DBC
  • Spring Data REST
  • Spring Data for Apache Cassandra
  • Spring Data for Apache Geode
  • Spring Data for Apache Solr
  • Spring Data for Pivotal GemFire
  • Spring Data Couchbase
  • Spring Data Elasticsearch
  • Spring Data Envers
  • Spring Data Neo4j
  • Spring Data JDBC Extensions
  • Spring for Apache Hadoop

SpringData 与 MyBatis 对比:
Spring Data:它不是一个单一的持久层框架,而是一个项目系列,提供了对多种数据存储的支持,包括关系型数据库(如JPA、JDBC)、NoSQL数据库(如MongoDB、Redis、Cassandra等)以及其他数据源。Spring Data 通过提供一致的编程模型和约定,简化了数据访问层的开发。
MyBatis:它是一个基于Java的持久层框架,允许开发者自定义SQL语句、存储过程和高级映射。MyBatis 避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,它使用XML或注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects)为数据库中的记录。

SpringData集成示例Gitee地址: https://gitee.com/dreamPointer/dreampointer.git,在demo-elasticsearch下