博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate 学习小结
阅读量:5018 次
发布时间:2019-06-12

本文共 3064 字,大约阅读时间需要 10 分钟。

             hibernate对jdbc做了轻量级的封装,使得我们程序猿直接以面向对象的思维操作数据库。hibernate单纯的使用起来很简单,但是如果什么都不了解在更改的时候会很麻烦。这里记录下一些基本概念方便以后使用

    hibernate 3的持久化状态有三种 transient(瞬时状态) 这个状态可以设置在一对多关系中一的一方,persistent(持久化状态)  和 detached(脱管状态)

    hibernate 3的框架核心为configuration,它负责启动hibernate 3 (这是单独把hibernate拿出来的用法,如果与spring集成则由spring负责启动),hibernate使用主要是通过sessionFactory获得session然后进行数据库操作,如果用config则 new Configuration().configure().buildSessionFactory()的方式获得该对象,如果spring集成的话只需要dao层实现类继承HibernateDaoSupport类直接获得即可。

    hibernate 3的主键生成机制

    Assigned方式表示人工手工生成主键

    Hilo 表示使用高低位算法生成

    Increment 方式表示对主键值采取自动增长方式生成新的主键值,但要求底层数据库支持Sequence

    Identity 方式表示根据底层数据库来支持自动增长,不同的数据库用不同的主键增长方式

    Sequence方式需要底层数据库支持Sequence方式,例如oracle数据库

    Native.方式表示根据不同的底层数据库自动选择Identity,Sequence,Hilo 主键的生成方式。

    UUID 方式表示使用128位UUID算法生成主键,能够保证网络环境下的主键唯一性,也能够保证在不同数据库及不同服务器下主键唯一性。

   hibernate 两种配置,一种是注解(Annotation) 一种是 xml ,大的工程最好用注解,注解的优先级高于xml(注解算是Hibernate对jpi的支持?),使用注解需要两个对注解提供支持的jar文件,分别是hibernate-annotations.jar 和 ejb3-persistence.jar,注解的方法可以避免那么多的xml文件所以建议大家用注解的方法。

  hibernate 数据库连接池 三种 DBCP,C390以及Proxool。

  hibernate 缓存机制:提供了2级cache 其中一级缓存是Session级别的缓存,二级缓存是SessionFactory 级别的缓存,他书句进程范围或群集范围的缓存,二级缓存可以配置和更改(笔者工程中有设置但是从来没用过- -)二级缓存是一次性获得所有数据对象,并根据ID放入到第二级缓存中,当Hibernate根据ID访问数据对象时首先从一级缓存中查询,如果查询不到,再从二级缓存中查询,如果还是查不到再从数据库查询,把结果按照Id放入到缓存中,删除更新,增加数据时同步更新缓存(CRUD操作是指create,retrieve,update,delete,这个概念小弟今天才知道,太专业了)。

    hibernate 和spring集成的时候设置比较简单,在这里说下直接上代码

com.hrbourse.application.model
com.hrbourse.hr.model
com.hrbourse.sys.model
org.hibernate.dialect.MySQLDialect
false
false
30
30
true 1, false 0
org.hibernate.cache.ehcache.EhCacheRegionFactory
true
true
/WEB-INF/ehcache.xml

 先从配置文件加载数据库连接需要的东西,创建数据集datasource 对象,该对象又被sessionFactory对象依赖,sessionFactory对象中的<property name="packagesToScan">是指需要扫描的hibernate 注解的持久化类,这些包下的类都是用@注解了的持久化对象,这些对象是使用Criteria 查询,或者调用save,merg等方法时所需要的,没有这些注解你就不能调用serssion的save等方法,当然这些注解跟spring注解无关,spring注解是注入依赖所需要的标识(扯远了)。然后sessionFactory中再加入更过的配置入数据连接池以及二级缓存的配置(使用二级缓存书上说需要激活如query.setCacheable(true))。然后再说明下jpa这个概念 java ,persistent api,是sun公司提供的orm规范化接口。   

转载于:https://www.cnblogs.com/wq123/p/3171966.html

你可能感兴趣的文章