- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 学前儿童学习与发展核心经验健康领域.pdf
- 新人教版七年级下册英语U4词汇分类循环训练单(学生版).docx
- 2023年下半年教师资格证《高中生物》真题及答案.pdf VIP
- 电子版个人简历模板简历表格 个人简历.docx VIP
- 国家秘密载体印制资质现场审查保密知识测试试题库.pdf VIP
- 2025年新疆乌鲁木齐市高考数学二模试卷(理科)+答案解析(附后).pdf VIP
- 我的家乡黑龙江双鸭山.pptx
- 初级注册安全工程师考试(安全生产法律法规)考点重点资料梳理.pdf VIP
- (最全)山东省2016建筑工程消耗量定额.pdf
- 2025年徐州工业职业技术学院单招职业技能测试题库(历年真题).docx VIP
文档评论(0)