Hibernate中如何管理session和批量操作数据
来源:互联网 发布:磐海数据有限公司 编辑:程序博客网 时间:2024/05/16 11:07
前边我们讲过了二级缓存,即它是一个进程几倍的缓存,只要当前程序在运行,这个缓存就一直存在的意思。二级缓存的存储介质可以是运行程序的内存也可以是硬盘,需要在二级缓存的插件的配置文件中进行存储硬盘的路径的配置才可以,如ehcache的diskstore节点。二级缓存分为内置和外置的,内置缓存是不可以卸载的,当Hiberante初始化时会将hbm.xml文件中的内容和预定义的SQL进行加载;外置缓存指的是一些Hibernate的插件,如ehcache。这些插件的使用方法是:先导入ehcache的jar包,然后在cfg.xml文件中启用外置二级缓存,设置外置二级缓存的使用的驱动类,设置二级缓存中可以存入的对象和集合就可以使用了。外置二级缓存的架构包括类缓存区域(存放普通的类)、集合缓存区域(存放类对象的集合属性的对象)、查询缓存区域(存放HQL或者QBC操作的对象缓存的区域,这个区域要想使用必须在cfg.xml文件中声明启动查询缓存,并且在使用的时候调用query对象的setCacheable(true)或者Criteria对象的setCacheabl(true)方法才可以)和更新时间戳缓存区域(记录外置二级缓存的时间表)。还讲了缓存插件ehcache的配置文件ehcache.xml,其中主要是配置了内存中数据存入硬盘的路径,和通过命名的方式区分了各个缓存区域的名称。
今天我们来讲一讲如何管理session对象和进行批量操作数据
1.管理session对象
Hibernate自身提供了三种管理session对象的方法
① 将session对象的声明周期与本地线程绑定
② 将session对象的声明周期与JTA事务绑定起来
③ Hibernate委托其他程序来管理session对象的生命周期
具体操作我们在cfg.xml文件中设置<property name="hibernate.current_session_context_class">thread/jta*/managed</property>这三个属性来对应前边三种管理session的方式。
需要注意的是:我们将session与本地线程绑定的方式,在提交或者回滚事务之后就不必在手动的调用session.close()方法了,因为commit方法中已经进行了关闭。
2. 批量操作数据
批量操作数据值得是:批量更新、插入、删除数据。常用的方法有session、HQL、JDBC API,我们推荐使用JDBC API当中的方法来执行批量操作。
因为session和HQL的方法都涉及到缓存,容易造成资源的浪费。
- Hibernate中如何管理session和批量操作数据
- Hibernate管理Session和批量操作
- Hibernate学习笔记----Session管理和批量操作
- hibernate的二级缓存操作及session的管理方法及数据的批量处理
- Hibernate、批量操作数据
- hibernate如何进行批量的数据操作,防止内存溢出
- 如何管理hibernate的session
- Hibernate4-12 管理Session与批量操作
- ServletFilter中管理Hibernate Session
- Hibernate中对Session管理
- Hibernate中Session的管理
- Hibernate中,数据批量插入
- hibernate中Session常见操作
- Hibernate中session的操作
- Hibernate应用中如何处理批量更新和删除
- 10.7 hibernate 空值异常,session管理,hql批量处理
- hibernate 作批量数据操作心得
- Hibernate中使用Session操作数据以及部分简单HQL(hibernate query language)
- java线程组和线程
- Java foreach循环, Iterator 迭代和remove方法之间的冲突
- redis使用命令
- leetcode 203. Remove Linked List Elements | 递归的更多理解
- java通过UUID生成16位唯一订单号
- Hibernate中如何管理session和批量操作数据
- AngularJS(六)非侵入式javascript
- 常用正则表达式
- Dubbo是什么?
- HDU6103(枚举)
- html5新增元素
- 全屏宽度的图片设置、@2x或@3x高倍图片设置原理
- JS——实现吹气球
- Centos7安装Qt5.5