第16章Hibernate3实战in MyEclipse - Read.PPT

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第16章Hibernate3实战in MyEclipse - Read

第16章 Hibernate3实战in MyEclipse 借助Hibernate3框架Java对数据库的开发变的非常容易。用户可以从域建模开始设计,因此可以编写出更加符合面向对象思想的应用程序,对关系型数据的依赖也非常的少。而MyEclipse提供的Hibernate工具使大量的配置工作可以自动或者通过图形界面来完成,丰富的提示免去了初学者的学习坡度,使使用者更容易把精力集中到如何现实业务逻辑方面去,由此提高效率、降低成本。 16.1 环境介绍 在Hibernate的官方网站上提供了一组针对Eclipse的Hibernate插件打包称为“Hiberante Tools”,安装起来非常简单。而在MyEclipse中已经自动包含了这个插件而且额外提供了很多实用的功能。 16.1.1 数据库连接工具 MyEclispe提供了一个数据库连接工具,它可以充当数据库的客户端程序使用,可以浏览编辑数据。更有用的是可以连接工具的界面,来反向生成Hibernate需要的持久化类和映射文件。 (1)新建连接。 (2)配置连接参数。 (3)选择Schema信息,缺省选择第一个显示全部的schema。最后单击“Finish”按钮完成配置。 (4)使用DB Browser。 16.1.2 创建Hibernate工程 MyEclipse对Hibernate提供了强有力的支持,包括图形化的配置界面,自动生成配置文件和代码,调试工具等。 (1)右击一个Java工程,在右键菜单中选择MyEclipse|Add Hibernate Capabilities,给这个工程增加Hibernate能力, (2)生成Hibernate配置文件。 (3)配置数据源。 (4)创建SessionFactory, (5)hibernate配置文件界面。 (6)添加属性。 (7)添加映射文件。 16.1.3 生成持久化类 MyEclipse提供了从数据库表反向生产Hiberante Java持久化类和映射文件的功能,对开发人员来说省去了很多工作量,不仅如此,MyEclipse甚至可以生成一些业务代码,如DAO类。 DAO是Data Access Object数据访问接口,数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。它是J2EE的一个核心模式。一般情况下把对一个或者是几个相关的数据表的操作,如添加、修改、删除、查询等方法写在一个类中,这个类就是DAO类。一般以表名+DAO来命名它。 16.1.4 HQL编辑器 MyEclipse还提供一个非常有用工具HQL编辑器,用户可以在这个编辑器中调试HQL语句,直接看到执行结果。 在主界面中选择工程,右键菜单MyEclipse|HQL Editor打开HQL编辑器界面,如图16.18所示。在编辑器中可以输入所需要调试的HQL语句,点击运行按钮可以在“Hbernate Query Result”窗口中查看到查询结果,这里返回的是Java对象,打印它们的toString()方法。在“Hibernate Dynamic Query Translator”窗口中还可以看到这句HQL最后执行的SQL语句是什么。 16.2 代码说明 本实例是对一个最典型的实体“雇员”完整的持久化操作。借助MyEclipse工具自动生成配置文件、持久化类、映射文件和与业务逻辑之间的中间层DAO类。 16.2.1 配置文件 在MyEclipse中Hibernate的配置文件完全可以使用图形化界面来配置,数据库连接为本地的MySQL数据库test。这里引入了两个映射文件Room和Person。 16.2.2 SessionFactory 对Session 进行有效管理的意义,类似JDBC 程序设计中对于JDBC Connection 的调度管理。有效的Session管理机制,是Hibernate应用设计的关键。大多数情况下,Session管理的目标聚焦于通过合理的设计,避免Session的频繁创建和销毁,从而避免大量的内存开销和频繁的JVM垃圾回收,保证系统高效平滑运行。 可以看到,localSession是一个ThreadLocal类型的对象,在doGet 方法中,通过其set 方法将获取的session实例保存,而在doSomething 方法中,通过get 方法取出session实例。 这也就是ThreadLocal的独特之处,它会为每个线程维护一个私有的变量空间。实际上,其实现原理是在JVM 中维护一个Map,这个Map的key 就是当前的线程对象,而value则是线程通过ThreadLocal.set方法保存的对象实例。当线程调用ThreadLocal.get方法时,ThreadLocal会根据当前线程对象的引用,取出M

文档评论(0)

youbika + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档