1.hibernate的5大核心接口

 configuration接口 

 配置hibernate 开启 hibernate 创建sessionFactory实例对象

 SessionFactory接口

 初始化hibernate 一个sessionFactory对应一个数据源 创建session接口对象

 SessionFactory特点:

  1.线程安全 一个实例多个线程共享

  2.不能随意创建和销毁  因为是重量级的 访问多个数据库时 需要创建对应的实例 避免造成数据混乱

  session接口 

   1.线程不安全 避免多个线程共享一个session

   2.轻量级 被称为持久化管理器 save delete update find load(get)

  transaction接口

   底层封装jdbc jta 事务 负责hibernate事务的管理

  Query Criteria接口

   负责数据的查询

   query封装HQL criteria封装基于字符创形式的

  [笔记]hibernate

2.hibernate的一级缓存 二级缓存 查询缓存

 一级缓存 内置不可卸载 一个事务内有效 管理缓存方法 evict(Object o) 和clear()

 

               session.evict(obj):会把指定的缓冲对象进行清除;

               session.clear():把缓冲区内的全部对象清除,但不包括操作中的对象。

               get load  iterate(查询实体对象)

[笔记]hibernate

 二级缓存 是进程或者集群范围内的缓存 可配置的插件

               修改一级缓存的数据,会自动同步到二级缓存

                分为类级别缓存 集合级别缓存 更新时间戳 查询缓存

   [笔记]hibernate

   查询缓存 缓存普通属性结果集的 对实体对象的结果集会缓存id

                  当关联的表发生修改或者查询条件改变时,查询缓存的生命周期结束

3.简述一下hibernate的开发流程

  1.加载hibernate的配置文件,读取配置文件的参数

  2.创建sessionFactory会话工厂(内部有连接池)

  3.打开session获取连接,构建session对象

  4. 开启事务

  5.进行操作

  6.提交事务

  7.关闭session将连接释放

   8.关闭连接池

4.如何进行hibernate的优化?

   1.数据库设计调整

   2.HQL优化

   3.API的正确使用

   4.主配置参数

   5.映射文件优化

   6.一级缓存的管理

   7.针对二级缓存,还有许多特有的策略

    8.事务控制策略

5.hibernate的No Session问题及解决方法

   当hibernate采用的是延迟加载时,并不会真正从数据库查询该数据,而是生成一个代理对象

   这个代理对象只有oid被赋值,其余皆为null.当load方法调用完,此次session生命周期就结束了

   当在此访问该对象且不在持久层时,就会报该错误.

  方法1:取消延迟加载的配置(最直接)

  方法2:在web.xml中做如下配置

  1. <filter>  
  2. <filter-name>openSessionInView</filter-name>  
  3. <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>  
  4. </filter>
  5. <filter-mapping>  
  6. <filter-name>openSessionInView</filter-name>  
  7. <url-pattern>/*</url-pattern>  
  8. </filter-mapping> 

 方法3:

 动态的关闭延迟加载的属性。采取的操作就是Hibernate.initialize(user);

相关文章:

  • 2021-04-12
  • 2021-05-13
  • 2021-09-16
  • 2021-09-04
  • 2022-01-29
  • 2022-01-12
  • 2021-07-16
  • 2021-10-02
猜你喜欢
  • 2021-10-26
  • 2021-07-27
  • 2021-12-06
  • 2022-12-23
  • 2022-01-11
  • 2021-09-28
  • 2021-09-16
相关资源
相似解决方案