HibernateWork12
来源:互联网 发布:淘宝人生无弹窗 编辑:程序博客网 时间:2024/05/21 10:47
1.阐述事务管理的步骤
服务器端在接收到用户的请求后,会创建一个新的Hibernate Session对象,然后通过该Session对象开始一个新的事务并且之后所有对数据库的操作都通过该Session对象来进行。最后,完成将响应页面发送到客户端的工作后再提交事务并且关闭Session。
2.解释并发引起的各种问题
1)第一类丢失更新:撤销一个事物时,把其它事物已提交的更新数据也撤销了
2)脏读:一个事务读到另一个事务未提交的更新数据。
3)不可重复读:一个事务读到另一个事务已经提交的更改数据。
4)第二类丢失更新:一个事务覆盖另一个事务已经提交的更新数据。
5)幻读:一个事务读到另一个事务已经提交的新增或以删除数据。
3.编写程序来演示乐观锁的作用
public void testTx1() {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
Student stu = null;
try {
stu = (Student)session.get(Student.class, 1);
System.out.println(stu.getName());
System.out.println("version=" + stu.getVersion());
stu.setName("在第一个事务中修改");
session.getTransaction().commit();
}
catch (HibernateException he) {
tx.rollback();
he.printStackTrace();
}
session.close();
// 操作完毕
System.out.println("tx1操作完成后------");
System.out.println(stu.getName());
System.out.println("version=" + stu.getVersion());
}
4.叙述悲观锁的实现原理及使用步骤
悲观锁是假定当前事务操作数据资源时,一定有其他事务同时访问该数据资源,所以先锁定资源。
一般实现方式是由数据库来实现,采用独占锁来锁定资源。使用get(),load(),是可以显示指定锁定模式:LockMode.UPGRADE
Session.get(Student.class,1,LockMode.UPGRADE);
- HibernateWork12
- 在校最后一个假期了,给自己约法8章
- 你俩是一对
- Java程序的编码规范
- DECODE函数的用法和实际运用
- Memory Layout for Multiple and Virtual Inheritance (By Edsko de Vries, January 2006)
- HibernateWork12
- tiny6410 Linux 按键控制LED驱动
- 给自己的警告
- Frame,Bounds的区别,center属性
- 深入理解Flash的沙箱 – Security Domains-1
- Smartupload上传组件用法
- [Maven] Explore maven code by code
- 设计模式之工厂模式
- machine learning