<p>Spring Boot 集成 Spring Data JPA 的核心是“自动配置 + 声明式接口”,只需引入 spring-boot-starter-data-jpa 和数据库驱动依赖,配置数据源与 JPA 参数,编写 @Entity 实体类(使用 jakarta.persistence.* 注解),再定义继承 JpaRepository 的接口即可实现全自动 CRUD。</p>

Spring Boot 集成 Spring Data JPA 的核心是“自动配置 + 声明式接口”,不需要写 XML、不用手动注册 EntityManagerFactory,只要配对依赖、实体和 Repository,CRUD 就能跑起来。
添加 starter 依赖
在 pom.xml 中引入两个关键依赖:
- spring-boot-starter-data-jpa:提供 JPA 自动配置、Repository 支持、事务管理等;
-
对应数据库驱动(如 MySQL):
mysql-connector-java,注意 Spring Boot 3.x 起需用mysql:mysql-connector-java:8.0.33+或更高版本(推荐使用com.mysql:cj.jdbc.Driver)。
若用 H2 做开发测试,可加 h2 依赖并启用内存数据库,无需额外安装服务。
配置数据源与 JPA 行为
在 application.properties(或 yml)中设置基础参数:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 数据库连接:包括 URL、用户名、密码、驱动类(Spring Boot 2.7+ 多数情况可省略 driver-class-name);
-
JPA 特性开关:
spring.jpa.hibernate.ddl-auto控制表结构行为(update适合开发,validate适合生产); -
调试辅助:
spring.jpa.show-sql=true和spring.jpa.format-sql=true方便查看生成的 SQL; -
避免警告:加上
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect(MySQL)或对应方言,防止启动时日志报“Unable to determine embedded database driver”。
编写 JPA 实体类
用标准 JPA 注解标记 Java 类,让它能映射到数据库表:
-
@Entity标识这是一个持久化实体; -
@Table(name = "xxx")指定对应表名(不写则默认用类名小写); -
@Id + @GeneratedValue定义主键策略(如GenerationType.IDENTITY对应自增); -
@Column可细化字段属性(nullable=false、unique=true、length=50等); - 建议配合 Lombok 使用
@Data、@NoArgsConstructor,减少模板代码。
注意:Spring Boot 3.x 默认使用 Jakarta EE 9+ 命名空间,注解包名是 jakarta.persistence.*,不是旧版的 javax.persistence.*。
定义 Repository 接口
继承 JpaRepository 即可获得全套 CRUD、分页、排序能力:
- 泛型参数为
<实体类, 主键类型>(如User, Long); - 无需实现类,Spring Data JPA 在运行时动态生成代理对象;
- 支持方法名查询(如
findByUsernameAndStatus)、@Query自定义 JPQL / 原生 SQL、@Modifying更新语句等; - 若只需基本操作,直接用
CrudRepository也行;需要分页就选JpaRepository。
示例接口:public interface UserRepository extends JpaRepository<User, Long> {<br> Optional<User> findByUsername(String username);<br>}

















