# Spring Boot 数据访问


<!--more-->


SpringData是Spring提供的一个用于简化数据库访问、支持云服务的开源框架。它是一个伞形项目，包含了大量关系型数据库及非关系型数据库的数据访问解决方案，其设计目的是使我们可以快速且简单地使用各种数据访问技术。Spring Boot默认采用整合SpringData的方式统一处理数据访问层，通过添加大量自动配置，引入各种数据访问模板xxxTemplate以及统一的Repository接口，从而达到简化数据访问层的操作。

![示意图](https://img.zhaojq.top/20260727091646050.png "示意图")

以下示例代码见：[https://gitee.com/ixinglan/spring-boot-demo.git](https://gitee.com/ixinglan/spring-boot-demo.git)

### 1.spring boot整合mybatis

**@Mapper**: 注解表示该类是一个MyBatis接口文件，并保证能够被Spring Boot自动扫描到Spring容器中对应的接口类上添加了@Mapper注解，如果编写的Mapper接口过多时，需要重复为每一个接口文件添加@Mapper注解

**@MapperScan("xxx"):**为了解决这种麻烦，可以直接在Spring Boot项目启动类上添加@MapperScan("xxx")注解，不需要再逐个添加@Mapper注解，@MapperScan("xxx")注解的作用和@Mapper注解类似，但是它必须指定需要扫描的具体包名

### 2.spring boot 整合jpa

现在用的较少，略过........

### 3.spring boot 整合redis

实体类中，针对redis有以下几个主要注解

- @RedisHash("persons")：用于指定操作实体类对象在Redis数据库中的存储空间，此处表示针对Person实体类的数据操作都存储在Redis数据库中名为persons的存储空间下。

- @Id：用于标识实体类主键。在Redis数据库中会默认生成字符串形式的HashKey表示唯一的实体对象id，当然也可以在数据存储时手动指定id。

- @Indexed：用于标识对应属性在Redis数据库中生成二级索引。使用该注解后会在Redis数据库中生成属性对应的二级索引，索引名称就是属性名，可以方便的进行数据条件查询。




























