hibernate的三种状态:临时态、持久态、游离态。
package com.ru.service;
import static org.junit.Assert.*;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.ru.domain.Classes;
public class LifeTest {
@Test
public void test() {
//研究session的生命周期
Configuration cf=new Configuration().configure();
SessionFactory sf=cf.buildSessionFactory();
Session session=sf.openSession();
try {
Transaction tx=session.beginTransaction();
//临时态
Classes clazz=new Classes();
clazz.setName("云1");
//clazz对象被放到session缓存中,session缓存中的clazz变量指向classes对象内存。在提交事务之前数据不会被存放到数据库
//clazz和clazz2变成持久态
session.save(clazz);
int id=clazz.getId();
System.out.println("##########################"+id);
clazz=null;
Classes clazz2=(Classes)session.get(Classes.class, id);
System.out.println("姓名:"+clazz2.getName()+"id:"+clazz2.getId());
tx.commit();
session.close();
//关闭session后对象变成游离态
System.out.println("###############关闭session#########################");
System.out.println("姓名:"+clazz2.getName()+"id:"+clazz2.getId());
} catch (Exception e) {
e.printStackTrace();
}finally{
sf.close();
}
}
}