1 事务相关概念
1.1 什么是事务
1.2 事务特性
1.3 不考虑隔离性(并发问题)
1.4 设置事务隔离级别—了解
mysql默认隔离级别 repeatable read
2 Hibernate事务操作
2.1 概述
2.2 事务代码规范写法
代码结构
//事务规范写法
@Test
public void testTx() {
SessionFactorysessionFactory = null;
Sessionsession = null;
Transactiontx = null;
try {
sessionFactory= HibernateUtils.getSessionFactory();
session= sessionFactory.openSession();
tx= session.beginTransaction();
Useruser = newUser();
user.setUsername("老兰");
user.setPassword("12369");
user.setAddress("攀枝花");
session.save(user);
int i = 10/0;
tx.commit();
}catch(Exception e) {
e.printStackTrace();
tx.rollback();
}finally{
session.close();
sessionFactory.close();
}
}
2.3 Hibernate绑定session
1 session类似于jdbc的connection,之前web阶段学过 ThreadLocal
2 帮实现与本地线程绑定session
3 获取与本地线程session
(1)在hibernate核心配置文件中配置
<!-- 在hibernate核心配置文件中配置 -->
<property name="hibernate.current_session_context_class">thread</property>
(2)hibernateUtils
调用sessionFactory里面的方法得到
4 获取与本地线程绑定session时候,关闭session报错,不需要手动关闭了