Hibernate的增删改查(事务)

时间:2023-03-10 06:55:02
Hibernate的增删改查(事务)

Hibernate的事务:

1、 设置事务隔离级别都是用  自己进行存储的

二进制      十进制

read uncommitted   读未提交        0001         1

read  committed   读已提交           0010         2

repeatable  read  重读                   0100         4       mysql的默认级别

serializable     可串行化                 1000          8

配置数据库的隔离级别直接写十进制的值即可。

在主配置文件(hibernate.cfg.xml)中配置数据库的隔离级别

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

2、Hibernate 管理事务的方法

//开启事务:

Transcation t =  session.beginTransaction();

try{

//。。。。。写自己的代码(do  somework . .)

//提交事务:

}catch(Exception e){

//异常后:回滚事务

if(t!=null){

t.rollbback();

}

}

3、Hibernate得到Session对象的方式

Configuration  c =  new Configuration()

c.Configure();     //读取  hibernate.cfg.xml文件

SessionFactory   factory  =  c.buildSessionFactory();

方式一:

factory.openSession();

方式二:

factory.getCurrentSession();

SessionFactory线程安全的

Session是线程不安全的

Session要线程安全  建议使用  getCurrentSession();

openSession()和getCurrentSession()

1、openSession()每次调用生成新的Session

getCurrentSession()每次调用都使用同一个session(与当前线程绑定的session)

2、openSession()使用不需要配置

getCurrentSession() 必须要配置 ,在主配置文件 hibernate.cfg.xml中配置

name="hibernate.current_session_context_class"