- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章 JPA JPA简介 JPA全称Java Persistence API,它通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA由EJB 3.0软件专家组开发,取代EJB2.0中实体Bean的技术,它不仅可以在EJB3.0中使用,还可以在Web应用及桌面应用程序中使用。 JPA的宗旨是为POJO提供持久化标准规范,能够脱离EJB容器独立运行。 目前Hibernate、TopLink以及OpenJPA都提供了JPA的实现。 JPA优势 标准化:JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何符合 JPA 标准的框架都遵循同样的架构,提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。 对容器级特性的支持:JPA 框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。 简单易用,集成方便。 可媲美JDBC的查询能力。 支持面向对象的高级特性。 JPA包括的技术 ORM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; JPA 的API用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者可以从繁琐的JDBC和SQL代码中解脱出来。 查询语言,这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。 常用JPA接口 Persistence接口:通过解析persistent.xml文件创建EntityManagerFactory对象。 EntityManagerFactory接口:用于创建EntityManager,如果不能注入EntityManager,需要使用EntityManagerFactory创建。 EntityManager接口:完成实体的管理,包括创建查询、删除实体、更新实体和添加实体等。 EntityManagerFactory emf = Persistence.createEntityManagerFactory(ch13); EntityManager em = emf.createEntityManager(); em.persist(entity)?;//添加实体—向数据库插入一条记录 EntityManager的主要方法 方法名 描述 persist 将实例转换为托管状态。实例将会被插入到数据库中。 merge 用于更新一个持久化对象。 refresh 保证当前的实例与数据库中对应的记录的内容一致。 remove ?将实体转换为游离状态,提交事务后删除数据库中的数据。 createQuery 更加JPQL语句创建一个Query(查询)对象 Query接口 Query接口:完成各种查询,通常由EntityManager创建,主要使用JPA的查询语言完成,也可以使用标准的SQL语言。 Query query =em.createQuery(from Emp); JPA的配置 与Hibernate相同,在EJB3.0中O/R映射由实体Bean完成,通过一组实体Bean映射到数据库中的各个表,这组实体Bean被称做Persistent Unit。 它是在persistent.xml文件中定义的,根据JPA标准,部署文件persistent.xml可以定义一个或多个Persistent Unit,它被放在项目的META-INF目录中。每个Persistent Unit只能关联一个且仅一个数据源。 !--必须要有name属性,不能为空 transaction-type属性 :本地事务管理-- persistence-unit name=ch13 transaction-type=RESOURCE_LOCAL !--采用Hibernate框架支持 -- providerorg.hibernate.ejb.HibernatePersistence/provider!--与数据库映射的实体Bean -- classcom.ch13.entity.Emp/class !--厂商的特定属性-- properties property name=hibernate.connection.driver_class value=com.mysql.jdbc.Driver / property name=hibernate.connection.url value=jdbc:mysq
您可能关注的文档
- 2017高中语文第一单元科学之光第4课斑纹选编.ppt
- 1104地球的结构选编.ppt
- 板形控制技术第二章选编.ppt
- 1080m3高炉喷煤方案选编.ppt
- kindergarten选编.ppt
- 902建设社会主义精神文明选编.ppt
- 2017高中物理第四章牛顿运动定律第7节用牛顿运动定律解决问题(二)选编.ppt
- 板式家具简介选编.ppt
- KDIGO-AKI急性肾损伤诊疗指南2012版选编.ppt
- k4、有机化合物的一般步骤和方法shuaifei选编.ppt
- 工会代表大会运行规则及十大制度解读.docx
- 法院合同法案例分析与学习笔记.docx
- 医疗急救口头医嘱管理流程制度.docx
- 幼儿园科学实验教学设计案例.docx
- 2025秋九年级英语全册Unit2Ithinkthatmooncakesaredelicious课时3SectionAGrammarFocus_4c习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit5WhataretheshirtsmadeofSectionA合作探究二课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit2Ithinkthatmooncakesaredelicious课时4SectionB1a_1d习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit1Howcanwebecomegoodlearners课时3SectionAGrammarFocus_4c习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit5Whataretheshirtsmadeof课时4SectionB1a_1e课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit3Couldyoupleasetellmewheretherestroomsare课时3SectionAGrammarFocus_4c课件新版人教新目标版.pptx
原创力文档


文档评论(0)