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

hibernate 二

阅读更多
一、ORM
1、持久化管理器 --- session
   持久化对象和临时对象,持久化对象,即对象的信息在数据库中存在,在内存中也有。
                         临时对象也就是新对象,没有同步到数据库。                              
                        
   session开放,对对象的修改,session都会保持其的同步
   session.save(Object);  变为持久状态,默认在调用commit()时执行语句
   session关闭,对象进入游离状态                        
   删除对象,可以直接删除游离状态的对象,到临时状态,其间有一个转换到持久状态的过程
  
2、Hibernate中的对象的状态:
(1) Transient Object  临时对象
      不与数据库中的任何一条记录关联,其生命周期在不被任何其他对象引用时为止,然后被垃圾回收。
(2) Persistent Object  持久化对象
      持久化对象实例有一个主健值作为其数据库标识,与Persistence Manage相关联,持久化对象实例总是与一个Session相关联。
      注:ORM有一个策略侦察持久化对象的更改,即automatic dirty checking。
          对于应用他是隐藏的。Hibernate的策略时尽可能晚的更新数据库,Hibernate默认时更新数据库的所有字段,若只想更新更改了的字段则改dynamic-update = “true”,即动态更新。
(3) Datached Object  脱管对象
      当关闭session,实例失去了与Persistence manager的关联,这些对象称作为托管对象,即不再与数据库关联也不在hibernater的管理之下。
      在应用中的一个事务之外可保存脱管对象的引用,这些引用可被再次用于新的事务中。
     
3、ORM就是关系映射
   是把对象永久保存到数据库的过程     

二、SessionFactory是和一个数据库一一对应的,他只能对应一个hibernate.cfg.xml文件,一个hibernate.cfg.xml中只能配置一个数据库的连接信息。

POJO(普通的java类)

持久化对象和临时对象,持久化对象,即对象的信息在数据库中存在,在内存中也有。临时对象也就是新对象,没有同步到数据库。

Session,持久化管理器。


三、Hibernate的核心接口

Configuration,用于解析hibernate.cfg.xml文件和XXXXX.hbm.xml文件,并创建SessionFactory对象。
SessionFactory,用于创建Session对象。
Session,持久化管理器,对象级数据库操作
必须工作在单线程环境下:(1)加synchronized (2)不能保存为成员变量,要创建局部变量
Query,对对象作持久化操作或查询操作
Transaction ,用于管理操作事务。


四、<hibernate-mapping package="XXX.XXX.XXX" auto-import="false">
package  类的包名,在下面的映射中就可以不写类的全限定名称


五、id生成方式
1,序列sequence 只适用于Oracle
<id name="id" column="id">
<generator class="sequence">
<param name="sequence">person_seq</param><!--指定sequence名-->
</generator>
</id>


2,自增列,适用于SQLServer、MySql
<id name="id" column="id">
<generator class="identity"/>
</id>


3,取最大值加一
<id name="id" column="id" type="integer">
<generator class="increment"/>
</id>


4,根据底层数据库指定生成方法
<id name="id" column="id">
<generator class="native"/>
</id>
使用缺省策略
针对Oracle数据库的生成方式还是sequence,只不过需要一个特定名字的sequence,"hibernate_sequence"。


5,高低位算法
<id name="id" column="id">
<generator class="hilo">
<param name="table">high_value</param>
<!--设置高位值取值的表-->
<param name="column">next_value</param>
<!--设置高位值取值的字段-->
<param name="max_lo">50</param>
<!--指定低位最大值,当取道最大值是会再取一个高位值再运算-->
</generator>
</id>
以上是hilo算法的普通形式,不适合用于squenece
在一个会话中保存多个对象
分享到:
评论

相关推荐

    hibernate 2 升级参考文档

    本文主要讨论从Hibernate 2升级到Hibernate 3的过程中需要注意的关键步骤,这对于使用SSH(Spring、Struts和Hibernate)框架的项目尤其重要。 首先,升级的第一步涉及替换jar包。将旧版本的Hibernate 2.1.jar替换为...

    Hibernate2和Hibernate3连接池配置.doc

    《Hibernate2与Hibernate3连接池配置详解》 在Java的持久层框架中,Hibernate是一个广泛使用的ORM(对象关系映射)工具,它允许开发者将数据库操作转化为对Java对象的操作,极大地提高了开发效率。然而,为了优化...

    hibernate二级缓存所需要的 jar包

    本篇将详细介绍Hibernate二级缓存的概念、作用以及所需jar包的作用。 一、Hibernate二级缓存概念 Hibernate的一级缓存是指Session级别的缓存,每个Session内部都有一个一级缓存,用于存储实体对象,当Session关闭时...

    hibernate2.jar-----hibernate工具包

    hibernate2的核心jar包 hibernate2.jar

    hibernate2.jar

    hibernate2.jar是hibernate的一个核心库

    Java Persistence WIth Hibernate 2nd

    Manning出版 Java Persistence With Hibernate 第二版 清晰pdf Hibernate, an open source project that is almost 15 years old. In a recent poll, Hibernate was among the top five tools used by many Java ...

    Hibernate 二级缓存

    Hibernate 二级缓存

    hibernate 2 安装手记.rar

    您可以从Hibernate的官方网站或者第三方资源网站下载Hibernate 2的源码包或二进制包。这里我们假设您已下载了"hibernate-2.x.y.zip"的压缩文件。 4. **解压与配置** 解压缩下载的文件到您选择的目录,例如`C:\...

    springboot+jpa(hibernate配置redis为二级缓存) springboot2.1.4

    通过以上步骤,我们就成功地在Spring Boot 2.1.4.RELEASE项目中配置了使用Redis作为Hibernate二级缓存的环境。这将显著提升数据库查询效率,减少对数据库的压力,尤其在高并发场景下,效果尤为明显。记得在实际生产...

    hibernate二级缓存要导入的包

    本压缩包提供的资源应该包含了实现Hibernate二级缓存所需的关键组件和库文件。 一级缓存是Hibernate Session内的缓存,它是每个Session实例独有的,当Session关闭时,一级缓存中的数据也会被清除。而二级缓存则是一...

    hibernate2文档

    - 缓存机制:Hibernate内部实现了一级缓存和二级缓存,减少数据库的访问次数,提高性能。 - 延迟加载和立即加载:Hibernate可以根据需要配置对象的加载策略,以优化性能。 - 可插拔数据库方言:支持多种数据库...

    hibernate中访问access数据库需要的jar包hibernate2access

    "hibernate2access"这个标题和描述提示了我们,这里涉及的知识点主要是如何配置Hibernate以适应Access数据库。 首先,我们需要了解的是Hibernate的配置文件(通常是`hibernate.cfg.xml`)。在这个文件中,我们需要...

    Hibernate2 参考文档

    除了Session的一级缓存外,Hibernate2 还支持二级缓存,可以跨Session共享数据。这通常通过插件如 Ehcache 来实现,提高数据读取速度,减少数据库负载。 总结来说,Hibernate2 是Java开发中的一个强大工具,简化了...

    hibernate二级缓存 SSH

    在这个项目中,"hibernate二级缓存 SSH" 的标题表明我们将探讨如何在SSH框架中实现Hibernate的二级缓存功能。Hibernate二级缓存是一个优化策略,它能提高数据访问性能,减少对数据库的直接访问。 首先,Struts2作为...

    hibernate2and3参考文档

    **hibernate2and3参考文档** 《hibernate2and3参考文档》是一部全面覆盖Hibernate 2和Hibernate 3的开发指南,旨在为J2EE开发者提供详尽的参考资料。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java...

Global site tag (gtag.js) - Google Analytics