Hibernate生命周期
1、臨時(shí)態(tài)也叫自由態(tài):即只是new 類名();
2、持久態(tài):即進(jìn)行 save()、update()、saveorupdate()、delete(),跟數(shù)據(jù)庫連接了
3、游離態(tài)也叫托管態(tài):session.close/evic/clear方法關(guān)閉和數(shù)據(jù)庫連接
public void test1() {
Configuration configuration = new Configuration();
configuration.configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transcation = session.beginTransaction();
Person person = new Person();//臨時(shí)態(tài)
person.setName("侯艷峰");//臨時(shí)態(tài)
session.save(person);//持久態(tài)
transcation.commit();//持久態(tài)
session.close();//游離態(tài)
}
臨時(shí)狀態(tài)和脫管狀態(tài):
臨時(shí)狀態(tài)的對(duì)象肯定是從new創(chuàng)建來的
脫管狀態(tài)的對(duì)象肯定是從持久化狀態(tài)轉(zhuǎn)化過來的
持久化狀態(tài)的對(duì)象
可以通過session.save/update/get方法把一個(gè)對(duì)象變成持久化對(duì)象
變成持久化狀態(tài)的對(duì)象只說明該對(duì)象進(jìn)入了hibernate的區(qū)域
和數(shù)據(jù)庫沒有關(guān)系,和數(shù)據(jù)庫有關(guān)系的只有事務(wù)
脫管狀態(tài)的對(duì)象
可以通過session.close/evic/clear方法
上圖可以看出:
在執(zhí)行71行代碼之前person對(duì)象已經(jīng)是持久化對(duì)象了所以70行不用寫,由此可以看出update()方
法雖然可以等一些方法雖然可以持久化對(duì)象,并非單純的。持久化對(duì)象才是真的。