【jiava】--简介JPA

【前言】

  最近小编在做项目中使用了JPA文件和数据库进行交互,对这块的知识不是很了解,所以查了一下资料,在这里总结一下。


【正文】

  通常,Java开发人员使用大量代码,或使用专有框架与数据库进行交互,而使用JPA,与数据库交互的负担显着降低。它形成对象模型(Java程序)和关系模型(数据库程序)之间的桥梁。

关系和对象模型之间的不匹配


  关系对象以表格格式表示,而对象模型则以对象格式的互连图形表示。在从关系数据库存储和检索对象模型的同时,由于以下原因导致一些不匹配:

  粒度:对象模型比关系模型具有更多的粒度。

  子类型:所有类型的关系数据库都不支持子类型(意味着继承)。

  身份:像对象模型一样,关系模型在写平等时不会暴露身份。

  关联:关系模型在查找对象域模型时不能确定多个关系。

  数据导航:对象网络中的对象之间的数据导航在两种模型中都是不同的。

什么是JPA?


 Java Persistence API是将大量数据持久存储到由Oracle Corporation提供的数据库中的类和方法的集合。

在哪里使用JPA?

  为了减少编写关系对象管理代码的负担,程序员遵循“JPA提供程序”框架,可以轻松与数据库实例进行交互。这里需的框架由JPA接管。


JPA历史

 早期版本的EJB,定义的持久层与业务逻辑层结合使用javax.ejb.EntityBean接口。
 引入EJB 3.0时,持久层被分离并指定为JPA 1.0(Java Persistence API)。该API的规格与2006年5月11日使用JSR 220的JAVA EE5规范一起发布。
 作为Java社区流程JSR 317的一部分,2009年12月10日发布了JPA 2.0的JAVA EE6规范。
 JPA 2.1在2013年4月22日使用JSR 338发布了JAVA EE7的规范。

JPA供应商


  JPA是一个开放源代码API,因此Oracle,Redhat,Eclipse等各种企业级供应商通过在其中添加JPA持久性来提供新产品。其中一些产品包括:

   Hibernate,Eclipselink,Toplink,Spring Data JPA等


JPA结构

  Java Persistence API是将业务实体存储为关系实体的源。它显示了如何将PLAIN OLD JAVA对象(PO​​JO)定义为实体,以及如何管理具有关系的实体。

   类级结构

    下图显示了JPA的类级体系结构。它显示了JPA的核心类和接口。



下表描述了上述架构中显示的每个单元。

单位 描述
EntityManagerFactory的 这是EntityManager的工厂类。它创建和管理多个EntityManager实例。
EntityManager的 它是一个接口,它管理对象的持久化操作。它的工作原理就像Factory的Query实例一样。
实体 实体是持久性对象,作为记录存储在数据库中。
EntityTransaction 它与EntityManager具有一对一的关系。对于每个EntityManager,操作由EntityTransaction类维护。
坚持 此类包含静态方法来获取EntityManagerFactory实例。
询问 该接口由每个JPA供应商实现,以获得满足标准的关系对象。

上述类和接口用于将实体作为记录存储到数据库中。它们通过减少编写用于将数据存储到数据库中的代码来帮助程序员,以便他们可以专注于更重要的活动,例如编写用于使用数据库表映射类的代码。

JPA类关系

在上述架构中,类和接口之间的关系属于javax.persistence包。下图显示了它们之间的关系。

  

  • EntityManagerFactory和EntityManager之间的关系是一对多的它是EntityManager实例的工厂类。

  • EntityManager和EntityTransaction之间的关系是一一对应的对于每个EntityManager操作,都有一个EntityTransaction实例。

  • EntityManager和Query之间的关系是一对多的可以使用一个EntityManager实例执行许多查询。

  • EntityManager和Entity之间的关系是一对多的一个EntityManager实例可以管理多个实体


【总结】

    JPA要了解的东西还是很多的,在一下篇中我们接着了解,敬请期待。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值