springBoot 数据访问-jpa

JPA的相关概念

JPA是Java Persistence API的缩写,是Java EE的一部分,用于对象关系映射。它允许开发者通过JDK 5.0注解或XML描述对象-关系表的映射,并将运行期的实体对象持久化到数据库中。

JPA的核心接口和服务:

  1. EntityManagerFactory:用于创建 EntityManager 实例。

  2. EntityManager:用于管理实体的生命周期,包括持久化、移除、查询等。

  3. PersistenceContext:持久化上下文,管理和维护实体的状态变化。

  4. EntityTransaction:用于实体事务管理。

JPA的主要优点:

  • 标准化: JPA 是 JCP 规范的一部分,所以它保持了与Java EE和Java SE的兼容性。

  • 容器级事务支持: JPA 实体管理器能参与容器管理的事务。

  • 优秀的查询语言: JPA QL是面向对象的,语法类似于SQL,但是更加强大和灵活。

  • 高效的数据缓存: JPA 提供了缓存管理,能够减少数据库的访问次数,提高性能。

  • 自动持久化: JPA 能自动处理实体的持久化操作,减少了手动编写SQL的需求

 

Spring Data JPA

Spring Data JPA是Spring的一个子项目,用于简化数据库访问层的开发。它提供了基于JPA的Repository抽象接口,让你可以通过简单的接口继承来获取各种数据库操作方法。

Spring Data JPA的核心概念包括:

  1. Repository:用于数据访问的抽象接口,可以自动产生实现代码。

  2. Entity:实体类,对应数据库中的表。

  3. EntityManager:用于管理实体的生命周期,包括持久化、查询等。

  4. JpaRepository:继承自Repository,提供了JPA特定的方法。

  5. CrudRepository:继承自JpaRepository,提供了基本的CRUD操作。

  6. PagingAndSortingRepository:继承自CrudRepository,添加了分页和排序功能。

  7. JpaSpecificationExecutor:用于复杂查询,如动态查询。

  8. @Entity:标注在类上,表示该类为一个JPA实体。

  9. @Table:标注在@Entity上,指定实体对应的数据库表。

  10. @Id:标注在属性上,表示该属性为实体的主键。

  11. @GeneratedValue:标注在@Id上,指定主键生成策略。

  12. @Column:标注在属性上,指定实体属性对应的数据库列。

  13. @Transient:标注在属性上,表示该属性不是一个JPA实体属性,不映射到数据库表中。

  14. @OneToOne、@OneToMany、@ManyToOne、@ManyToMany:标注在属性上,表示实体之间的关联关系。

以下是一个简单的Spring Data JPA实体和仓库的例子:

在这个例子中,我们定义了一个User实体类,并使用了Spring Data JPA的JpaRepository接口来创建一个UserRepository接口。这个接口提供了基本的CRUD操作,以及一个根据用户名查询用户的自定义方法。

application.properties 配置

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值