怎么在网上找接单做网站的公司,网站首页广告,门户网站建设困难,设计网页英文文章目录 JPA概述JPA的优势JPA注解 JPA概述
Java Persistence API#xff08;JPA#xff09;是 Java EE 平台的一部分#xff0c;它为开发者提供了一种用于对象关系映射#xff08;ORM#xff09;的标准化方法。JPA 提供了一组 API 和规范#xff0c;用于在 Java 应用程… 文章目录 JPA概述JPA的优势JPA注解 JPA概述
Java Persistence APIJPA是 Java EE 平台的一部分它为开发者提供了一种用于对象关系映射ORM的标准化方法。JPA 提供了一组 API 和规范用于在 Java 应用程序和关系型数据库之间进行交互。 JPA 的主要特性和优点包括
对象关系映射JPA 允许开发者通过注解或 XML 配置将 Java 对象与数据库表之间进行映射实现对象与关系数据库之间的转换。这样开发者可以使用面向对象的方式处理数据而不需要编写原始的 SQL 语句。数据持久化JPA 提供了一组 API用于管理对象的生命周期和持久化操作。通过 JPA开发者可以将对象存储到数据库中、从数据库中检索对象、更新对象以及删除对象。查询语言JPA 引入了一种与关系数据库无关的查询语言称为 JPQLJava Persistence Query Language。JPQL 允许开发者以面向对象的方式编写查询而不需要关心底层的数据库结构。事务支持JPA 支持事务管理开发者可以使用 JPA 的事务机制来处理并发访问和数据一致性的问题。延迟加载JPA 支持延迟加载可以根据需要在运行时动态加载与对象关联的数据提高应用程序的性能。 JPA 是一个规范并不是具体的实现。在实际开发中可以选择不同的 JPA 提供商如 Hibernate、EclipseLink 等它们都是根据 JPA 规范来实现的。 通过使用 JPA开发者可以更方便地进行对象持久化和数据库操作减少了编写大量的 SQL 语句的工作提高了开发效率。同时由于 JPA 是 Java EE 标准的一部分因此可以方便地与其他 Java EE 技术如 Servlet、EJB 等进行集成。 JPA 全称Java Persistence API翻译为JAVA持久层应用接口JPA本身并不是一个框架它本质上是一种ORM规范Hibernate是一个框架也是JPA的一种实现。
JPA的优势
标准化: 提供相同的 API这保证了基于 JPA 开发的企业应用能够经过少量的修改就能够在不同的 JPA 框架下运行。简单易用集成方便: JPA 的主要目标之一就是提供更加简单的编程模型在 JPA 框架下创建实体和创建 Java 类一样简单只需要使用 javax.persistence.Entity 进行注解JPA 的框架和接口也都非常简单。可媲美JDBC的查询能力: JPA的查询语言是面向对象的JPA 定义了独特的JPQL而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性甚至还能够支持子查询。支持面向对象的高级特性: JPA 中能够支持面向对象的高级特性如类之间的继承、多态和类之间的复杂关系最大限度的使用面向对象的模型。
JPA注解
EntityTable(name”“)表明这是一个实体类。一般用于jpa这两个注解一般一块使用但是如果表名和实体类名相同的话Table可以省略 MappedSuperClass:用在确定是父类的entity上。父类的属性子类可以继承。 NoRepositoryBean:一般用作父类的repository有这个注解spring不会去实例化该repository。 Column如果字段名与列名相同则可以省略。 Id表示该属性为主键。 GeneratedValue(strategy GenerationType.SEQUENCE,generator “repair_seq”)表示主键生成策略是sequence可以为Auto、IDENTITY、native等Auto表示可在多个数据库间切换指定sequence的名字是repair_seq。 SequenceGeneretor(name “repair_seq”, sequenceName “seq_repair”, allocationSize 1)name为sequence的名称以便使用sequenceName为数据库的sequence名称两个名称可以一致。 Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。如果一个属性并非数据库表的字段映射,就务必将其标示为Transient,否则,ORM框架默认其注解为Basic。Basic(fetchFetchType.LAZY)标记可以指定实体属性的加载方式 JsonIgnore作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。 JoinColumnname”loginId”:一对一本表中指向另一个表的外键。一对多另一个表指向本表的外键。 OneToOne、OneToMany、ManyToOne对应hibernate配置文件中的一对一一对多多对一。 Entity Table(name”“) 表明这是一个实体类。一般用于jpa 这两个注解一般一块使用但是如果表名和实体类名相同的话Table可以省略 MappedSuperClass 用在确定是父类的entity上。父类的属性子类可以继承 NoRepositoryBean 一般用作父类的repository有这个注解spring不会去实例化该repository Column 如果字段名与列名相同则可以省略 Id 表示该属性为主键 GeneratedValue(strategyGenerationType.SEQUENCE,generator “repair_seq”) 表示主键生成策略是sequence可以为Auto、IDENTITY、native等Auto表示可在多个数据库间切换指定sequence的名字是repair_seq SequenceGenerator(name “repair_seq”, sequenceName “seq_repair”, allocationSize 1) name为sequence的名称以便使用sequenceName为数据库的sequence名称两个名称可以一致 Transient 表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性. 如果一个属性并非数据库表的字段映射,就务必将其标示为Transient,否则,ORM框架默认其注解为Basic Basic(fetchFetchType.LAZY) 标记可以指定实体属性的加载方式 JsonIgnore 作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响 JoinColumn(name”loginId”) 一对一本表中指向另一个表的外键。 一对多另一个表指向本表的外键。 OneToOne OneToMany ManyToOne 对应Hibernate配置文件中的一对一一对多多对一。