网站大量收购独家精品文档,联系QQ:2885784924

软件技术 Java web应用开发 项目六 网上商城框架模式的重构-模块1 Hibernate重构Model模块.ppt

软件技术 Java web应用开发 项目六 网上商城框架模式的重构-模块1 Hibernate重构Model模块.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 高级配置设置 8-6 绑定SessionFactory到JNDI 在J2EE环境中,把SessionFactory绑定到JNDI可以在不同的线程之间容易地共享 如果属性hibernate.session_ factory_name 被设置为一个目录节点的名字, SessionFactory将自动地绑定它自己到JNDI。如果你的运行时环境不提供一个默认的JNDI上下文,你需要使用属性hibernate.jndi.url 和 hibernate.jndi.class指定一个JNDI初始化上下文 * 高级配置设置 8-7 下面是一个绑定SessionFactory到名字“hibernate/HibernateFactory”的例子,使用Sun的基于文件系统的JNDI实现,fscontext.jar : * 高级配置设置 8-8 这个例子只是演示,因为大部分应用服务器通过JNDI提供连接池并且也有一个具有可写的默认上下文的JNDI实现。因此,你常常不需要设置最后两个属性 Tomcat绑定了一个只读的JNDI上下文,在Servlet容器启动之后,不能在应用代码中写JNDI上下文。因此,Hibernate不能绑定到这种上下文 * 日志 3-1 Hibernate异步执行SQL语句。当应用调用Session.save()方法时,一个INSERT语句通常不被执行;当应用调用Item.addBid()方法时,一个UPDATE语句也不是立即被执行。SQL语句通常是在一个事务的末尾处被执行,这种行为被叫做write-behind 使用日志可以获得Hibernate的内部执行视图,有助于跟踪和调试各种问题 * 日志 3-2 Hibernate使用Apache commons-logging记录所有感兴趣的事件,用一个薄的抽象层指示输出到Apache log4j(如果你把log4j.jar放在classpath中)或者JDK1.4 logging(如果log4j不存在)。推荐使用log4j,因为它更成熟、更流行、发展更快 要看到log4j的任何输出,在classpath中要有一个perties文件。下面的例子把所有的日志信息输出到控制台: * 日志 3-3 把.sf.hibernate属性的值由info改为debug,将暴露Hibernate的内部工作。在产品环境中不要这样做,因为写日志比访问数据库还要慢 * 核心接口 5-2 SessionFactory 应用程序从SessionFactory(会话工厂)里获得Session(会话)实例。它在多个应用线程间进行共享。通常情况下,整个应用只有唯一的一个会话工厂——例如在应用初始化时被创建。然而,如果你使用Hibernate访问多个数据库,你需要对每一个数据库使用一个会话工厂 会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据 * 核心接口 5-3 Configuration Configuration 类负责管理Hibernate 的配置信息。它包括如下内容: Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等 Hibernate映射文件(*.hbm.xml) 应用程序使用一个Configuration实例来指定映射文件的位置、Hibernate特定的属性并创建SessionFactory * 核心接口 5-4 Transaction(事务) 它将应用代码从底层的事务实现(可能是一个JDBC事务,一个JTA用户事务)中抽象出来,允许应用通过一组一致的API控制事务边界。这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性 使用Hibernate进行操作时(增、删、改)必须显示的调用Transaction(默认:autoCommit=false) * 核心接口 5-5 Query Query(查询)接口允许你在数据库上执行查询并控制查询如何执行。查询语句使用HQL或者本地数据库的SQL方言编写 * 回调接口 当一个对象上面发生了一些令人感兴趣的事情时,回调接口允许应用接收一个通知。例如,当一个对象被装载、被保存、被删除的时候 Lifecycle和Validatable接口允许一个持久对象对关联到其自身的persistence lifecycle事件起反应 Interceptor接口允许应用处理回调,而不强迫持久类去实现特定的Hibernate接口。该接口的实现被作为参数传递给持久类的实例 * 类型接口 一个Hibernate的Type对象映射一个Java类型到一个数据库字段类型 持久类的所有持久属性,包括关联,都有一个相应的Hibernate类型 内置的Hibernate

文档评论(0)

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

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档