1. 程式人生 > 實用技巧 >Hibernate框架session的方法

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=new
Configuration(); //配置全域性物件 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語句
  

  以上方法本人已測試,如有寫錯的地方請大家指出