该篇为:慕课网基于Spring Boot技术栈博客系统企业级前后端实战第6章的学习笔记
1. JPA是什么
JPA(Java Persistence API)是Sun官方提出的Java持久化规范,用来方便大家操作数据库。真正干活的可能是Hibernate,TopLink等等实现了JPA规范的不同厂商,默认是Hibernate。
2.JPA的核心概念
实体
关系
EnityManager
3.Spring Data JPA
常用接口:
- 增删改查接口CrudRepository
- 分页排序接口PagingAndSortingRepository(继承了增删改查接口)
- 自定义接口
4.Spring Data JPA、与Spring Boot集成 将数据持久化到H2数据库中
(1)首先在项目中添加build.gradle的依赖
(2) 添加H2数据库的依赖
# JPA
spring.jpa.show-sql=true
# 在应用启动时先创建数据,然后删除
spring.jpa.hibernate.ddl-auto=create-drop
(3)编写后台
注意User实体类的编写,需要添加JPA的注释
public class User {
@Id //主键
@GeneratedValue(strategy=GenerationType.IDENTITY) //生成策略:根据数据库自增
private Long id;
private String name;
private String email;
protected User(){ //无参构造器;设为protected 防止直接使用
}
public User(Long id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", email='" + email + '\'' +
'}';
}
}
UserReposity直接继承接口即可
public interface UserReposity extends CrudRepository<User,Long> {}
前端页面参考:https://blog.csdn.net/qq_41986312/article/details/88422285
(4)打开h2-console
默认使用的是testdb这个数据库
以前没有使用JPA时候,往往要先从表结构出发,先去设计表结构,现在可以从业务出发,表的建立等都有JPA完成
5 将数据持久化到MySQL中
1. 在上一个代码的基础上修改
# THYMELEAF
spring.thymeleaf.encoding=UTF-8
# 热部署静态文件
spring.thymeleaf.cache=false
# 使用HTML5标准
spring.thymeleaf.mode=HTML5
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
# DataSource
spring.datasource.url=jdbc:mysql://localhost/blog?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# JPA
spring.jpa.show-sql=true
# 在应用启动时先创建数据,然后删除
spring.jpa.hibernate.ddl-auto=create-drop
2.创建blog数据库
3.启动项目
可以看到前面配置文件中生效了(每次启动删除之前的数据)
在数据库中自动创建了blog
在测试开发中采用H2数据库,内置速度较快,后期再使用MySQL.
代码下载地址: