第十五节:SpringBoot 使用 JPA 访问数据库
JPA 是 Java Persistence API 的简写,是官方提出的一种 ORM 规范!
JPA 规范,都在包路径:
javax.persistence.*
下,像一些常用的如:@Entity、@Id 及 @Transient 都在此路径下。这些也是一些现在市面上常用的 ORM 一些约定俗成的注解了。
Spring Data JPA 是 Spring 基于 Hibernate 开发的一个 JPA 框架。可以极大的简化 JPA 的写法,可以在几乎不用写具体代码的情况下,实现对资料的访问和操作。除了「CRUD」外,还包括如分页、排序等一些常用的功能。
pom.xml 中添加依赖
application.properties 配置
spring.jpa.hibernate.ddl-auto 是否根据实体类更新数据库,有四个属性值
spring.sql.init.mode 是否使用 sql 文件初始化数据库,有 3 个值
spring.sql.init.schema-locations 指定建表的 sql 文件
spring.sql.init.data-locations 指定数据 sql 文件
创建实体类
@GeneratedValue(strategy = GenerationType.IDENTITY)
有以下几种类型
TABLE:使用一个特定的数据库表格来保存主键。
SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
IDENTITY:主键由数据库自动生成(主要是自动增长型)
AUTO:主键由程序控制。
创建 repository
数据持久层,负责访问数据库,在这里声明的方法一般不用实现,只要按照 Jpa 的规范就可以自动生成 SQL 语句。
Jpa
可以通过接口名生成对应的 sql 语句,如 find... By,read... By,query... By,count... By,和 get... By 。这些方法可以包含其他表达式,例如在要创建的查询上设置 Distinct 标志。第一个 By 用作分隔符,表示条件的开始,后面定义实体属性的各种条件,并将它们用 And 和 Or 连接起来。例如:
举一些例子
Repository 有 3 种
JpaRepository 继承 PagingAndSortingRepository,PagingAndSortingRepository 继承 CrudRepository。
CrudRepository 提供 CRUD 的功能
PagingAndSortingRepository 提供分页和排序功能
JpaRepository 提供 JPA 相关的方法,如刷新持久化数据、批量删除等。
service
业务逻辑层,负责调用
Repository
处理数据完成业务。
Controller
前端控制器,负责接收前端请求,调用
service
,返回数据。
本小结源码地址:
GitHub:https://github.com/mifunc/springboot/tree/main/lession15
Gitee:https://gitee.com/rumenz/springboot/tree/master/lession15
https://rumenz.com/rumenbiji/springboot-jpa-base.html
介绍
我的博客 https://rumenz.com/ ,
我的工具箱 https://tooltt.com/
微信公众号:【入门小站】
关注【入门小站】回复【1001】获取 linux 常用命令速查手册
关注【入门小站】回复【1003】获取 LeetCode 题解【java 语言实现】
关注【入门小站】回复【1004】获取 Java 基础核心总结
关注【入门小站】回复【1009】获取 阿里巴巴 Java 开发手册
版权声明: 本文为 InfoQ 作者【入门小站】的原创文章。
原文链接:【http://xie.infoq.cn/article/5ccbcb6a7f0e22fe5339b9157】。文章转载请联系作者。
评论