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下