Hibernate -- 配置c3p0连接池, 事务隔离级别, 管理session
知识点1:配置c3p0连接池(了解)
* 引入c3p0-0.9.1.jar
* 在hibernate.cfg.xml文件中增加如下配置
<!-- C3P0连接池设定-->
<!-- 使用c3po连接池 配置连接池提供的供应商-->
<property name="connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</property>
<!--在连接池中可用的数据库连接的最少数目 -->
<property name="c3p0.min_size">5</property>
<!--在连接池中所有数据库连接的最大数目 -->
<property name="c3p0.max_size">20</property>
<!--设定数据库连接的过期时间,以秒为单位,
如果连接池中的某个数据库连接处于空闲状态的时间超过了timeout时间,就会从连接池中清除 -->
<property name="c3p0.timeout">120</property>
<!--每3000秒检查所有连接池中的空闲连接 以秒为单位-->
<property name="c3p0.idle_test_period">3000</property>
<!-- 设置自动提交 -->
<property name="connection.autocommit">true</property>
知识点3: ANSI 事务隔离级别
设置隔离级别
每个数据库连接都有默认的隔离级别,通常是读已提交或可重复读.可以通
过数据库配置设置,也可在应用程序中设置.例如Hibernate:
hibernate.connection.isolation = 4
1—Read uncommitted isolation
2—Read committed isolation
4—Repeatable read isolation
8—Serializable isolation
注意:* Hibernate不可能改变在受管环境下由应用服务器提供的数据库连接的隔离级别,只能通过改变应用服务器配置的方式来改变.
* 设置隔离级别是全局选项,会影响所有的连接和事务.有时需要为某个特定事务指定更多的限制.
* Hibernate依赖于乐观的并发控制,使用版本检查和悲观锁实现附加的锁支持.
知识点4:管理session
应用中,把管理Session对象的生命周期交给Hibernate管理,可以简化Java应用程序代码和软件架构
对象的生命周期与本地线程绑定
对象的生命周期与 JTA 事务绑定
委托程序管理 Session
对象的生命周期
的配置文件中, hibernate.current_session_context_class属性用于指定Session管理方式,可选值包括
对象的生命周期与 JTA 事务绑定
配置文件的 hibernate.current_session_context_class属性值设为thread, Hibernate就会按照与本地线程绑定的方式来管理Session
Session 与本地线程绑定
返回
Hibernate会自动清理sessionA对象的缓存,然后提交事务,关闭sessionA
对象.当threadA撤销
sessionA对象关联的事务时,也会自动关闭sessionA对象
在hibernate中如何配置
* 在hibernate.cfg.xml文件中增加
<!-- 配置session的线程本地化threadLocal -->
<property name="current_session_context_class">thread</property>
* 不是调用sessionFactory.openSession().而是调用sessionFactory.getCurrentSession().获取session对象.从当前的线程提取session,
* 当前线程如果存在session对象,取出直接使用
* 当前线程如果不存在session对象,获取一个新的session对象和当前的线程绑定
Hibernate -- 配置c3p0连接池, 事务隔离级别, 管理session的更多相关文章
- Hibernate配置C3P0连接池
引入C3PO包 在hibernate.cfg.xml文件中配置 <!-- 数据库连接池的使用 --> <!-- 选择使用C3P0连接池 --> <property nam ...
- Hibernate 配置C3P0 连接池
第一步在hibernate.cfg.xml配置 <!-- 连接池 --> <property name="hibernate.connection.provider_cla ...
- (30)java web的hibernate使用-c3p0连接池配置
hibernate支持c3p0连接池 需要导入c3p0的jar包 <!-- 配置连接驱动管理类 --> <property name="hibernate.connecti ...
- Spring_day03--Spring配置c3p0连接池和dao使用jdbcTemplate
Spring配置c3p0连接池和dao使用jdbcTemplate 1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 原始方式 (1)把代码在配置 ...
- (七)Spring 配置 c3p0 连接池
目录 在 Spring 核心配置文件中配置 c3p0 连接池 配置 JdbcTemplate 对象 在 service 层注入 userDao 在 UserDao 里面注入 JdbcTemplate ...
- HQL查询及Hibernate对c3p0连接池的支持
//HQL查询 // auto-import要设置true,如果是false,写HQL时要指定类的全名 //查询全部列 Query query = session.createQuery(" ...
- Spring框架中 配置c3p0连接池 完成对数据库的访问
开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...
- JNDI配置c3p0连接池
JNDI是什么呢? 就是java命名和文件夹接口.是SUN公司提供的一种标准的Java命名系统接口. 不好理解?简单说呢.他就是一个资源,放在tomcat里面的一个资源,今天我们就把数据库连接池放到t ...
- Spring框架中 配置c3p0连接池
开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...
随机推荐
- Visual Studio 2010 如何改用 Beyond Compare 作为 TFS 的比较工具
Beyond Compare 是一套非常实用的文件及文件夹比较软件,不仅可以快速比较出两个文件夹的不同之处,还可以详细的比较文件之间的内容差异.最近改用 TFS 进行版本控管之后,说实在的还是习惯使用 ...
- 穿透Session 0 隔离(一)
服务(Service)对于大家来说一定不会陌生,它是Windows 操作系统重要的组成部分.我们可以把服务想像成一种特殊的应用程序,它随系统的“开启-关闭”而“开始-停止”其工作内容,在这期间无需任何 ...
- 观《phonegap第三季 angularjs+ionic视频教程 实时发布》学习笔记(三)
十五.ionic路由 1.ionic中内联模板介绍 使用内联模板内联模板的使用,常见的有几种情况.(1) 使用ng-include指令可以利用ng-include指令在HTML中直接使用内联模板,例如 ...
- sql---如何把sql查询出来的结果当做另一个sql的条件查询,1、语句2、with as
'; -- table2 的 name 作为 table1的条件 select * from table1 where name in (select name from table2) --如果有多 ...
- 巨蟒python全栈开发-第14天 内置函数2 递归 二分查找
一.今日内容总览 1.内置函数补充 repr() 显示出字符串的官方表示形式 chr() arscii码中的字,转换成位置 ord() arscii码中的位置,转换成字2.递归 自己调用自己 两个口: ...
- java获取地址全路径
String basePath = request.getScheme()+"://"+request.getServerName()+":"+reques ...
- QQ视频直播架构及原理 流畅与低延迟之间做平衡 音画如何做同步?
QQ视频直播架构及原理 - tianyu的专栏 - CSDN博客 https://blog.csdn.net/wishfly/article/details/53035342 作者:王宇(腾讯音视频高 ...
- .net ASPxTreeList 使用手记
ASPxTreeList在使用ASPxGridViewExporter控件做导出时,如果指定文件名是中文时会乱码可以用以下方法解决: grvExporter为ASPxGridViewExporter控 ...
- Objective-C学习笔记(五)——数据类型与限定词
如同其它不论什么的编程语言一样,想要更深入的学习.必需要了解该门语言的数据类型与限定词. OC的数据类型例如以下: (1)int:整型: int a; int b=2; int ...
- 利用EasySQLMAIL实现自动填写Excel表格并发送邮件(2)
利用EasySQLMAIL实现自动填写Excel表格并发送邮件 转自:http://blog.sina.com.cn/s/blog_1549483b70102witg.html 前一篇博文中记录了“利 ...