Java Web应用技术与案例教程 作者 杨树林 胡洁萍 第八章 持久化技术Hibernate.pptVIP

Java Web应用技术与案例教程 作者 杨树林 胡洁萍 第八章 持久化技术Hibernate.ppt

  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文档。上传文档
查看更多
第八章 持久化技术Hibernate 本章要点 Hibernate的基本原理及应用方法 Hibernate的配置方法 实体关系映射方法 实体操作与数据查询的方法 使用Hibernate的辅助类设计的博客网站的Dao设计 8.1 Hibernate原理 Hibernate简介 ORM(Object-Relation Mapping,对象关系映射)是用来将对象和对象之间的关系对应到数据库中表与表之间的关系的一种模式。ORM框架能够将Java对象映射到关系数据库,能够直接持久化复杂的Java对象。 Hibernate是一个开源的对象关系映射框架,它对JDBC进行了非常轻量级的封装,使得Java程序员可以随心所欲地使用面向对象的编程思想来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java Application中使用,也可以在Servlet/JSP的Web应用中使用。最具革命意义的是,Hibernate可以在应用EJB的Java EE架构中取代CMP,完成数据持久化的重任。 Hibernate API Configuration Hibernate的入口,负责在Hibernate初始化时加载配置文件信息到计算机内存,并通过它的对象加载指定的映射文件到内存,最后创建一个SessionFactory对象,把读入的配置信息拷贝到SessionFactory对象的缓存中。 SessionFactory 负责创建Session实例,每个SessionFactory类的实例对应一个数据库。每个数据库最好只创建一个SessionFactory实例,在初始化时完成。它的线程是安全的,可以被应用的多个线程共享。 Session Hibernate持久化操作的基础,它负责管理所有与持久化相关的操作,例如数据库的存取、事务的管理和对象的生命周期等。它不是线程安全的,应避免多个线程共享同一个Session ;可以为每个请求分配一个Session,在每次请求过程中及时创建和销毁Session实例,减少资源的浪费。 Query和Criteria 负责Hibernate的查询操作。Query实例封装了HQL (Hibernate Query Language)。HQL与SQL有些类似,只是HQL是面向对象的,它操作的是持久化类的类名和该类的属性名,而SQL操作的是表名和字段名。Criteria完全封装了字符串形式的查询语句,它比Query要面向对象,它更适合于执行动态查询。 应用Hibernate的一般步骤 (1)导入类库,即将Hibernate所需的JAR包复制到WEB-INF/lib下。 (2)创建Hibernate的配置文件。 (3)利用开发工具从数据库创建出相应的实体对象及其ORM映射文件。 (4)利用Hibernate API访问数据库,对数据进行操作。 在项目中应用Hibernate 导入Hibernate类库 创建Hibernate的配置文件 创建实体类及其映射 访问数据库 //(1)创建Configuration对象并加载Hibernate配置 Configuration config = new Configuration().configure();//使用默认配置文件 //(2)创建SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(); //(3)创建Session Session session = sessionFactory.openSession(); //(4)定义事务 Transaction ts = null; try { //(5)创建查询 Query query = session.createQuery(delete from YbCategory a where a.categoryId=5); //(6)启动事务 ts = session.beginTransaction(); //(7)执行操作 int n = query.executeUpdate(); //(8)提交事务 mit(); } catch (Exception e) { if (ts != null) { //(9)回滚事务 ts.rollback(); } e.printStackTrace(); } finally {

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档