Hibernate框架session的方法
package Test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import model.stud; public class testmain { public static void main(String[] args) { //配置資訊物件 Configuration config=newConfiguration(); //配置全域性物件 config=config.configure("hibernate.cfg.xml"); //建立session工廠 SessionFactory sessionfactory=config.buildSessionFactory(); //建立資料庫會話 Session session=sessionfactory.openSession(); //獲取事務物件 Transaction t=session.beginTransaction(); stud stu=new stud(null, "豬大腸", "123456", "嫖娼"); session.save(stu); t.commit(); session.close(); } }
以上是測試的基本配置
Session物件的方法
1.save:儲存物件(就相當於sql語句裡面的新增語句一樣);
persist():儲存一個物件,跟save作用一樣(*如果手動設定了ID,則save方法會忽略ID,而persist方法會丟擲一個異常)
2.get:根據OID獲取物件(*根據id查詢物件):
stud stud = session.get(stud.class, 1); System.out.println(stud);
3.load:載入一個物件,跟get方法一樣:
1.get會立即查詢,而load不會立即查詢,要等到呼叫到它時它才會去查詢
2.load載入之後,如果session被管理,則直接丟擲異常
3.如果資料庫中沒得響應的結果,則get會返回一個null,而load會直接丟擲異常
stud stud=session.load(stud.class, 1); System.out.println(stud);
4.clear:清空快取
session.clear();
5.refresh.重新載入某個物件
6.evict:可以將某個被session管理的持久化物件,從session中移除,使其變為遊離物件;
1.瞬時態:
存在於程式中,不存在資料庫中,沒有oid,不在session中
如下:
1 UserInfo userInfo = new UserInfo(88,"惡霸天","987654",30,"小魚兒與花無缺","[email protected]"); 2 System.out.println(userInfo);
2.遊離態:
存在與程式中,存在與資料庫中,有oid,不在session中
如下:
1 UserInfo userInfo3 = session.get(UserInfo.class, 4); 2 session.clear();
//修改密碼 3 userInfo3.setPassWord("6666666");
3.持久態:
存在於程式中,存在於資料庫中,有oid,在session中
如下:
UserInfo userInfo2 = session.get(UserInfo.class, 5);
7.close:關閉
session.close();
8.update:更新物件(遊離),該物件會轉變為持久化物件
//修改 session.update(userInfo);
9.delete:從資料庫中刪除一個物件, session的delete方法是通過主鍵進行刪除的,主鍵不存在則異常,持久狀態物件被delete後變成瞬時狀態物件
session.delete(1);
10.saveOrUpdate:系統會判斷該物件,如果是臨時物件,就會執行儲存操作,如果是遊離物件,則執行更新操作
stud stu1=new stud(null, "王胖子", "123456", "嫖娼"); session.saveOrUpdate(stu1);
11.flush:傳送讓session物件SQL語句
以上方法本人已測試,如有寫錯的地方請大家指出