数据库事务处理、连接池介绍

一、事务:

事务:单个逻辑工元执行的一系列逻辑工作单元执行的一系列操

1)事务特征:

  •   原子性  指事务包含的所有操作要么全部成功,要么全部失败回滚
  •   一致性  指事务执行的前后,数据的完整性保持一致
  •   隔离性  指一个事务执行的过程中,不应该受到其他事务的干扰
  •   持久性   一个事务执行完成后,数据就持久的保存在数据库中

2)事务处理,不考虑隔离性引发的安全问题

  1. 脏读                       一个事务读取到另一个事务未提交的数据
  2. 不可重复读            一个事务读到另一事务已经提交的update数据,导致在前一个事务多次查询的结果不一致
  3. 虚度                       一个事务读到另一个事务已经提交的insert数据,导致在前一个事务多次查询结果不一致

3)事务的隔离性,设置它可避免上述情况

  •  Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
  •  Repeatable read (可重复读):可避免脏读、不可重复读的发生。
  •  Read committed (读已提交):可避免脏读的发生。
  •  Read uncommitted (读未提交):最低级别,任何情况都无法保证。

4)hibernate设置事务个隔离级别,进行事务处理

<!--当前线程绑定session-->
<property name="hibernate.current_session_context_class">thread</property>
<!--设置事务的隔离级别-->
<property name="hibernate.connection.isolation">4</property>

设置事务隔离级别.取值为 1、2、4、8

                   1 : READ_UNCOMMITED 读取未提交,它引发所有的隔离问题

                   2 : READ_COMMITTED 读取已提交,阻止脏读,可能发生不可重复读与虚读

                   4 : REPEATABLE_READ 重复读,阻止脏读,不可重复读,可能发生虚读

                   8 : SERIALIZABLE 串行化,解决所有问题,不允许两个事务,同时操作一个目标数据。(效率低)

       ORACLE 默认的事务隔离级别是READ_COMMITTED

       MYSQL 默认的事务隔离级别是REPEATABLE_READ

<property name="hibernate.connection.isolation">4</property>

二、连接池介绍

https://blog.csdn.net/crankz/article/details/82874158

C3P0:是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate 一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。

        <!-- 自己 配置C3P0连接池 -->
		<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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值