传智播客java培训2010年4月27日hibernate学习

传智播客java培训2010427hibernate学习

今天上课状态不错,看无论如何以后得晚上一点钟之前睡觉,每天至少得保证六个小时的睡眠时间,今天上课的整体情况不错,对UML有了一定的了解,对建模也有一定的认识。前几天上课的HIBERNATE却不是很乐观,所以,今天的任务仍然是复习HIBERNATE的学习,把没有跟上的课程赶上,五一放假过后,就要开始做项目了,现在真不能欠债。终于啊,北京的树枝开始长新叶了,朋友早上提起时才发现的呵,看来灰蒙蒙有天气有所好处了。

HIBERNATE事务管理:

基本特性:

1.原子性

是指HIBERNATE一个事务中的所有操作比所一个单元,单元中的所有操作组成一个原子操作,所有成功才成功,只要有一个失败则都失败。

2.一致性

保证操作数据后在逻辑上要保持一致。

3.隔离性

指事务间的相互隔离,多人操作时,每人可以处理自己的事务,之间必须互不干扰。

4.持久性

数据库中的数据都写入硬盘中,如发生什么突发情况,数据库要保证未结束的时间要撤销,要保证数据。

事务分类:

1.编程式

使用JDBCJTA相关框架的API以编码方式设置事务的边界和隔离级别信息。

JDBC Connection类的事务控制方法:

  setAutoCommit(boolean autoCommit) 设置是否自动提交事务,默认自动

  commit() 提交事务

  rollback() 撤销事务

2.声明式

依赖应用服务器提供的服务,或者相关框架在配置文件中设置事务的边界和隔 离等级,不需要在程序中编写代码。

关发访问数据可能引发的问题:

不同事务同时操作相同数据,如果没有合理控制,会在并发操作的数据上产生不一致的问题。可能会导致5类并发问题:

   1. 第一类丢失更新:撤销一个事务时,把其他事务已提交的更新覆盖

   2. 脏读:一个事务读到另一事务未提交的更新数据

   3. 虚读:一个事务读到另一事务已提交的新插入的数据

   4. 不可重复读:一个事务读到另一事务已提交的更新数据

   5. 第二类丢失更新:一个事务覆盖另一事务已提交的更新数据,不可重复读的特例

事务隔离级别:

1.read uncommited. 

可读已更新未提交,查未提交前不允许其他事务写入。可能出现脏读的情况。

2.Read commited

可读已提交,不可读沿未提交.有可能出现第二类丢失。

3.Repeatable read

一个事务已读取的数据不允许其他事务写入

4.Serializable

不能并发执行。

事务隔离级别的选择:

1.4较少,23居多

 

锁:

HIBERNATE6种不同的锁模式:

1.LockMode.NONE

2.lockMode.READ

3.lockMode.write

4.lockMode.upgrade

5.lockMode.upgrade_nowait

6.lockMode.Force

通过乐观锁的设置与Read commited可的避免有 第二类丢失。

通过今天的复习,对HIBERNATE的事务处理以及可能因为并发访问引用的问题有了解,但是根据我的经验来看,即使是以后进入公司,也不可能让一个新来来进行这方面的处理,特别是大型的公司,小公司的机率相对大一点,但是涉及到HIBERNATE的性能操作时,让一个新人来做的机会相对较少,但无论如果一定要具备这样的能力,实践的机会不足,要如何才能更快的提高这方面的实际能力呢?虽然困难重重,但只有寻求解决方法之道才是出路!才能胜人一筹!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值