- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章节持久化技术JPA
第四章 持久化技术JPA;本章目录;4.1 JPA概述;4.1 JPA概述;JPA是Sun官方提供的持久化的解决方案,从Java EE 5.0开始正式推出,它在充分吸收现有ORM框架技术的基础上,得到了一个易于使用、伸缩性强的ORM规范。JPA通过JDK 5.0标注或XML描述对象关系的映射,并将运行期的实体对象持久化到数据库中。
JPA的宗旨是为POJO提供持久化标准规范。目前Hibernate 3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。其技术主要包括:
ORM映射元数据 JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。
JPA 的API 用来操作实体对象,执行CRUD(它是Create创建、Read读取、Update更新和Delete删除的缩写)操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。
查询语言 这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序与SQL语句的紧密耦合。;4.1 JPA概述;4.1 JPA概述;4.1 JPA概述;4.1 JPA概述;@Entity
@Table(name = bs_category)
public class BsCategory implements Serializable {
};实体管理器(EntityManager)
EntityManager是应用程序访问持久化上下文中的实体的接口,是Java实体对象与数据库交互的中介。它负责管理一组对应的实体,包括这组实体的CRUD操作。同时,实体管理器也负责与持久化上下文(Persistence Context)进行交互,可以实现对实体不同状态进行转换操作等。;如何获取EntityManager
实体管理器要通过实体管理器工厂建立。但是,当使用容器托管的实体管理器(在Java EE环境中)时,应用不和实体管理器工厂交互。实体管理器直接通过依赖注入或JNDI获得,容器负责与实体管理器工厂交互。
注入实体管理器 可以用@PersitenceContext标注来注入EntityManager,其属性 type指明持久化上下文的作用范围,默认是TARNSACTION。若选择EXTENDED(扩展的方式),可使得多次调用使用同样的上下文,它的意义在于对有状态的Bean可以跨事务操作实体;unitName(可选)用于指定一个持久性单元。
当使用应用托管的实体管理器时,应用必须使用实体管理器工厂来管理实体管理器和持久化上下文的生命周期。EntityManagerFactory接口供应用来创建应用管理的实体管理器。EntityManagerFactory的方法都是线程安全的。注入实体管理工厂 在Java EE容器内,可以用@PersistenceUnit标注注入或者通过JNDI查找获得EntityManagerFactory,其unitName属性(可选)用于指明使用哪个持久性单元。;4.1 JPA概述;4.2 实体对象映射;4.2 实体对象映射;4.3 实体关系映射;4.3 实体关系映射;共享主键的一对一关联映射;4.3 实体关系映射;通过关联表处理单向关联;4.3 实体关系映射;通过关联表映射
;4.3 实体关系映射;4.4 实体操作与事务管理;1. 持久化实体(创建实体)
将内存中的实体对象写入到数据表中,在表中反应的是新增了一行记录,对应SQL的insert语句。持久化实体可通过persist()方法。例如:
em.persist(bsCustomer);//em为实体管理器对象,customer为客户实体对象
2. 修改实体
已持久化的实体,修改后可以通过merge()方法将其重新保存。例如:
em.merge(bsCustomer);
3.删除实体
将持久化的实体从数据库中删除,可以通过remove()方法。例如:
em.remove(bsCustomer);
4. 根据主键查询实体
通过实体管理器的find()方法或getReference()方法可以根据主键查询实体,与前者不同,后者在没有找到时不是返回null,而是抛出异常。例如:
BsCustomer bsCustomer = em.find(BsCustomer.class, custId);;5.刷新实体
如果当前被管理的实体已经不是数据库中最新的数据,则可以通过refresh()方法刷新实体。例如:
em. refresh(bsCustomer);
6.刷新实体到数据库
当调用persist()、merge()和remove
您可能关注的文档
最近下载
- 急性胰腺炎护理(完整版)PPT课件.pptx VIP
- 《电气控制系统设计与装调》教案 任务二: CA6140型车床线路故障分析及检修方法(1).doc VIP
- 2025广西公需科目培训考试答案(90分)——“一区两地一园一通道”建设;人工智能时代的机遇与挑战(1).pdf VIP
- 橋式起重机操作维护检修规程.doc VIP
- 2025年铁路行业白皮书:铁路运输网络优化与智能服务.docx
- 党课ppt+讲稿:二十届四中全会提出的新概念新观点新论断ppt.pptx VIP
- 《电气控制系统设计与装调》教案 任务一:CA6140型车床控制线路基本构造及工作原理.doc VIP
- 果实套袋技术详解.ppt VIP
- 应用文写作教程PPT课件—实习报告.pptx VIP
- 煤矿采掘技术管理体系.doc VIP
原创力文档


文档评论(0)