`
longgangbai
  • 浏览: 7339516 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate 学习研究(五)

阅读更多

     一个数据库创建一个SesssionFactory 实例,因为随意创建SessionFactory实例会占用大量的内存空间。

          SessionFactory的缓存可以分为两类:内置缓存和外置缓存。SessionFactory的内置缓存中存放了Hibernate配置信息和映射元素数据信息等。SessionFactory的外置缓存是一个可配置的缓存插件。在默认情况下,SessionFactory不会启用这个缓存插件,外置缓存存放大量数据库数据的拷贝。外置缓存的物理介质可以时内存或者硬盘。

访问HibernateSession接口:

          初始化过程结束后,就可以调用SessionFactory实例openSession方法获取Session实例。然后通过它执行访问数据库的操作。Session接口提供了操作数据库的各种方法。Session是一个轻量级对象。通常将每一个Session实例和一个数据库事务绑定,也就是说每执行一个数据库事务,都应该先创建一个新的Session实例,如果事务执行中出现异常,应该撤销事务。不论事务是否执行成功与否,最后都应该调用Session的关闭方法close方法,从而释放Session实例占用的资源。

          在开发最好设置show_SQL true,便于观察执行sql操作过程的,优化程序。

定制持久化类:

         <meta>元素用于精粒度的控制java源代码的内容。用于类和属性等。使用meta仅仅想针对紧靠的类设置采用两种方式:

         <meta attribute=”extends”  inherit=”false”> package.class </meta>放在需要的类跟前即可。

◆把<meta>元素嵌套到class元素里面。

     定制数据表:<property>元素的<column>子元素用于精粒度的控制表的定义。

对象关系映射基础:

     对于持久化类的OID,推荐使用包装类型。

     Hibernate访问持久化类属性的策略:在对象关系映射中,使用<property>元素的access属性用于定制hibernate访问持久化类的属性的方式

           property:默认值,表明hibernate通过相映的setget方法持久化类的属性的方式。

           field:表明hibernate运用java反射机制直接访问类的属性。

           ◆除了定义上面的值外,也可自定义属性访问方式。必须船检一个实现net.sf.hibernate.propert.PropertyAccessor接口的类。然后把类的完整名称赋值给<property>元素的access属性。

        HQLQBC查询对应的select语句必须在执行该代码时才能动态生成。静态预处理的语句实现在SessionFactory启动时读取配置文件时存储在

存中。在执行saveupdatedeleteload时从缓存中查找相映的预处理sql语句

再把具体的参数值绑定到该sql语句中。在默认情况下,预定义的sql语句中包含

了表中所有的字段。

如果不想在时在sql中使用响应的属性,必须使用update=falseinsert=false的映射属性。

用于控制insertupdat语句的映射属性

映射属性

作用

PropertyInsert

False:在insert语句不包含,默认为true

PropertyUpdate

Falseupdate语句不包括此字段短,默认true

Classmutable

如果false等价所有属性为update的属性为false,表示整个实例不能被更新,默认为true

Propertydynamic-insert

True:表示保存一个对象,会动态生成insert语句,只有这个字段取值部位null,才会把它包含到insert语句中默认false

Propertydynamic-update

True:表示保存一个对象,会动态生成update语句,只有这个字段取值有变化才会包含到update中,默认false

Classdynamic-insert

如果true等价所有的propertydynamic-insert属性为true,表示当保存一个对象时,会动态生成insert语句,insert中字段包括所有取值不为null的字段,默认为false

Classdynamic-update

如果true等价所有的propertydynamic-update属性为true,表示当保存一个对象时,会动态生成update语句,update中字段包括所有取值变化的字段,默认为false

分享到:
评论

相关推荐

    Hibernate DOC中文文档(学习Hibernate必备手册)

    《Hibernate DOC中文文档》是学习Hibernate框架的重要参考资料,它详细...无论是想要快速入门,还是深入研究,这份文档都是一份不可多得的学习资料。只要你耐心研读,掌握Hibernate并运用到实际项目中将不再是难题。

    hibernate学习文档

    ### Hibernate 学习文档知识点详解 #### 一、概述 Hibernate 是一款开源的对象关系映射 (Object ...对于想要深入学习 Hibernate 的读者来说,建议进一步研究其源码及更多实践案例,以便更好地掌握这项强大的技术。

    hibernate学习源代码祝你提高

    在这个"hibernate学习源代码祝你提高"的资料包中,我们可以深入理解 Hibernate 的工作原理和设计模式,这对于初学者提升技能非常有帮助。该资源主要针对 Hibernate 3.x 版本,这是一个广泛使用的版本,包含了丰富的...

    Hibernate学习研究

    《Hibernate学习研究》这篇文章主要介绍了Hibernate这一Java持久化框架的基础知识和使用方法。Hibernate是一个ORM(对象/关系映射)框架,它允许开发者用面向对象的方式来处理数据库操作,从而简化了Java应用程序与...

    尚学堂hibernate学习笔记(原版整理)

    【尚学堂Hibernate学习笔记】是一份详尽的学习资料,旨在帮助初学者理解并掌握Hibernate这一流行的Java对象关系映射(ORM)框架。该笔记由作者根据马士兵老师的教程整理而成,其中包含了个人的学习注解,使得内容...

    hibernate源码的学习

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,而无需直接编写SQL语句。...通过对"hibernate-one2many"的分析,我们可以深入研究和实践一对一和一对多关联关系的配置和操作。

    Hibernate学习源码

    《Hibernate学习源码详解》 Hibernate,作为Java领域中的一款著名对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑的实现,而非底层的SQL语句。本资料包含了多个阶段的...

    hibernate五天学习笔记(txt)

    【hibernate五天学习笔记】是一份详细的Java ORM框架Hibernate的学习资料,旨在帮助开发者深入理解和掌握Hibernate的核心概念和技术。ORM(Object-Relational Mapping)是将数据库中的关系数据与Java对象进行映射的...

    Java相关课程系列笔记之十四Hibernate学习笔记

    【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...

    Hibernate学习:单向多对一关联 工程

    本项目“Hibernate学习:单向多对一关联 工程”专注于讲解Hibernate中的单向多对一关联映射,这是数据库设计中常见的关系类型,尤其在处理具有层次结构的数据时。 单向多对一关联指的是在一个实体类中有一个引用,...

    学习hibernate第二天

    在IT行业中,Hibernate...在进一步研究源码时,可以深入了解Hibernate是如何在内部处理这些关联的,以及如何优化这些操作以提高性能。同时,熟练运用相关工具,如IDEA的代码生成功能,可以帮助快速构建和调试这些关联。

    hibernate 全面学习->hibernate 关联映射学习

    本篇文章将全面探讨Hibernate的关联映射学习,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)以及多对多(Many-to-Many)四种关系映射。 首先,一对一关联映射(One-to-One)是两个实体...

    Hibernate做的留言板

    标签中的"源代码"意味着我们可以深入研究项目的内部工作原理,这对于学习和理解Hibernate的使用方法非常有价值。 在【压缩包子文件的文件名称列表】中,虽然只给出了"HiMe",但通常一个Web应用项目会包含以下部分:...

    hibernate-release-4.1.4

    【标题】"hibernate-release-4.1.4" 是Hibernate...通过深入研究这个压缩包,开发者不仅可以了解Hibernate的基本用法,还能掌握更高级的功能,如事务管理、缓存策略、查询语言(HQL)等,从而提升开发效率和代码质量。

    hibernate第一个hibernate

    学习完基础后,可深入研究Hibernate的高级特性,如 Criteria API、Hibernate Search 和 JPA 规范等。 总之,"hibernate第一个hibernate"项目是一个绝佳的起点,它将引导你了解并掌握Hibernate的基本概念和操作。...

    Hibernate 简单 PPT 总结

    这些资料构成了一套完整的Hibernate学习路径,从基础到高级,从配置到实践,对于理解Hibernate的核心机制和提升开发技能都非常有帮助。通过阅读和研究这些内容,开发者可以更熟练地运用Hibernate进行数据库操作,...

    Hibernate官方中文参考手册+Hibernate开发指南+Hibernate的两本英文书籍

    《Hibernate的两本英文书籍》可能指的是更深入的原版文档或者专业著作,这些书籍通常会包含最新的技术信息和最佳实践,对于想要深入研究Hibernate或者保持技术更新的开发者来说是不可或缺的资源。可能涵盖的主题包括...

    Hibernate学习笔记第一次课

    【Hibernate学习笔记第一次课】 在本课程中,我们将深入探讨Hibernate框架的基础知识,这是一个流行的Java对象关系映射(ORM)工具,它简化了数据库与Java应用程序之间的交互。我们的重点是Hibernate 3.1版本,虽然...

    Hibernate源码

    Hibernate是Java领域中一款广泛应用的关系型数据库对象映射...总之,对Hibernate源码的学习不仅可以提升数据库操作的技能,还可以帮助开发者更好地理解和解决实际项目中的问题,实现更高效、更灵活的数据访问层设计。

    struts+hibernate 项目

    Struts和Hibernate是Java Web开发中的两个重要框架,它们在构建...通过研究这个项目,开发者不仅可以学习到如何整合Struts和Hibernate,还能了解到如何在MyEclipse环境中进行开发,这对提升Java Web开发技能大有裨益。

Global site tag (gtag.js) - Google Analytics