第9章 JAVA 持久API.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 JAVA 持久API

/webnew/ 第9章 JAVA 持久API 学习要点: 实体Bean 实体类 实体的生命周期 事务处理 直接操纵实体数据 并发访问和锁 查找实体和Query API 命名查询 EJB-QL语言 9.1 Java持久化 API 概述 知识点 9.1.1 实体Bean 9.1.2 实体类 9.1.3 实体的生命周期 9.1.4 事务处理 9.2 数据库同步 知识点 9.2.1 直接操纵实体数据 9.2.2 并发访问和锁 9.2.3 查找实体和Query API 9.2.4 命名查询 9.2.5 EJB-QL语言 9.1.1 实体Bean 实体Bean有着一组属性并且每个属性与数据库表中的每个字段一一对应。 公开get和set方法供外界访问。 每一个属性对应数据库表中的一个字段,这样一个Bean实例就对应了表中的一条记录。 并不是固定的一个实例对应一条记录 。 保持实体Bean 可以手工完成持久化操作 可以让EJB容器完成持久化操作 实体bean和对话bean的比较 实体bean不允许保存每个客户端的信息。会话bean允许保存客户端的状态信息。 实体bean允许保存记录的,会话bean既可以保存客户端的信息又可以保存数据库记录的信息。 会话bean也不能提供在相同或不同的EJB类调用间进行全局的事务控制。 实体Bean的分类 1)CMP类型的实体Bean 2)BMP类型的实体Bean 9.1.2 实体类 实体类用于表示数据库中的表,实体类的编写主要确定如下信息: 该实体与数据库中的哪个表对应; 实体类中的属性与表中的哪个字段对应; 实体类中的哪个属性是主键。 编写实体类的主要知识点 声明该类为实体类:@Entity 声明该实体类与哪个表对应:@Table(name = userinfo) 声明该实体类与表中的哪个列对应 如: @Column(name = userid, nullable = false) ??? private String userid;? ??? @Column(name = username, nullable = false) ??? private String username;? ??? @Column(name = userpass, nullable = false) ??? private String userpass;? ??? @Column(name = usertype, nullable = false) private char usertype; 9.1.3 实体的生命周期 受管 新建 删除 分离 new() persist() persist() remove() 终止PersistenceContext merge() 9.2 数据库同步 9.2.1 直接操纵实体数据 实体数据 RDBMS 实 体 持久化提供者 O/R Mapping 现有应用 直接修改数据库 9.2.2 并发访问和锁 表9-1 ?出现在事务T2中的脏读 T1 T2 account= ??? manager.find(Account.class, 1234); // 更新 account.withdraw(100,000); manager.flush() // 查找和读数据 account = manager.find(Account.class, 1234); ??? System.out.printIn(account.balance); // 触发回滚 throw new RuntimeException(); T1 T2 Account = manager.find(Account.class, 1234); Account.withdraw(100,000); Query query = manager.createQuery(“Select a from Account a WHERE a.balance 1000”); System.out.printIn(“Got” + query.getResultList().size() + “records.”) //… System.out.printIn(“Got” + query.getResultList().size() + “records.”) 图9-3 ?出现在事务T2中的不可重复读 9.2.3 查找实体和Query API find()操作的方法签名。 /** 通过主键进行查找 */ public T T find(ClassT entityClass, Object primaryKey); 9.2.3 查找实体和Que

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档