JPA技术

JPA(Java Persistence API)是一种持久层API,通过ORM映射元数据和API简化对象与数据库表的交互,避免使用JDBC和SQL。其优点包括标准化、简单方便的编程模型、强大的查询能力及对面向对象高级特性的支持。JPA提供了如@Entity等注解,便于实体对象的持久化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.JPA技术的含义

2.JPA技术--ORM映射元数据  API  查询语句

3.JPA技术的优点

4.JPA的常用注解


1.JPA技术的含义

        Java prosistence API (持久层API),是通过注解或xml描述对象与关系表的映射关系,并将运行期的实体对象持久化到数据库中。

2.JPA技术--ORM映射元数据  API  查询语句

  • ORM(对象关系映射)映射元数据

        JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;

  • API

        用来操作实体对象,执行CRUD操作,框架在后台替代我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。

  • 查询语句

        这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。

3.JPA技术的优点

  • 标准化

        JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。

  • 简单方便

        JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释,JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易地掌握。JPA基于非侵入式原则设计,因此可以很容易地和其它框架或者容器集成。

  • 查询能力

        JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是Hibernate HQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询

  • 高级特性

        JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。

4.JPA的常用注解

注解含义
@Entity用于实体类声明语句之前,指出该Java 类为实体类,将映射到指定的数据库表。
@Table当实体类与其映射的数据库表名不同名时需要使用 @Table 标注说明,该标注与 @Entity 标注并列使用,置于实体类声明语句之前,可写于单独语句行,也可与声明语句同行。
@Id声明一个实体类的属性映射为数据库的主键列
@Column

声明实体的属性在其映射的数据库表中的列名称(备准或不同名时)

@GeneratedValue标注主键的生成策略
@OneToMany一对多 Many这张表的外键
@ManyToOne多对一 One这张表的外键  @JoinColumn()
@ManyToMany多对多
@Basic一个简单的属性到数据库表的字段的映射
@Transient该属性并非一个到数据库表的字段的映射
@Temporal注解来调整精度[数据库中的Date类型DATE, TIME, 和 TIMESTAMP这三种精度]
@Query (Spring Data JPA 用法)

1.普通查询 @Query(value="查询语句")

2.@Param()注入参数   @Param(表中字段名) 形参

@Modifying@query种编写JPQL实现DELETE和UPDATE操作必须添加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值