隨筆-9  評論-168  文章-266  trackbacks-0
          (一)  org.hibernate.cfg.Configuration類
                  讀取配置文件并創(chuàng)建唯一的SessionFactory對象.(一般,程序初始化hibernate時創(chuàng)建.)
                  Configuration config=new Configuration().config();     //自動查找CLASS指定路徑下的hibernate.cfg.xml文件.

          (二)  org.hibernate.SessionFactory接口
                   主要作用是創(chuàng)建Session對象.(N個數(shù)據(jù)庫只有N個SessionFactory對象并通過N個Configuration實例根據(jù)不同的配置文件創(chuàng)建.因此對象是不可改變的,所以為接口.)
                  SessionFactory sessionFactory=config.buildSessionFactory();

          (三)  org.hibernate.Session接口
                  持久化操作的核心API,java程序與hibernate進行交互時所使用的主要接口.他有生命周期,以事務(wù)開始和結(jié)束為邊界.
                  主要功能是讀取,創(chuàng)建和刪除映射的實體對象的實例.這一系列的操作會轉(zhuǎn)化為對數(shù)據(jù)庫表中數(shù)據(jù)的增加,修改,查詢和刪除操作.
                  Session session =sessionFactory.openSession();

                  (實體對象:與數(shù)據(jù)庫中表進行映射的類.)
                  操作實體方法:所有方法都是在事務(wù)提交結(jié)束時才真正執(zhí)行相應(yīng)操作.
                  void save(Object object) :用于瞬態(tài)對象實例的轉(zhuǎn)持久化操作,相當于INSERT.

                  void update(Object object):必須設(shè)置標識符(object.setId(....)),根據(jù)標識符更新數(shù)據(jù).相當于UPDATE.

                  void delete(Object object) :相當于DELETE.

             (1)創(chuàng)建查詢對象:調(diào)用方法獲得持久對象.(結(jié)果集,數(shù)據(jù)庫中的數(shù)據(jù).)
                  Query createQuery(String queryString)    //用的最多.可用HQL語句直接更新,刪除數(shù)據(jù).

                  Criteria createCriteria(Class persistentClass)  

                   SQLQuery createSQLQuery(String queryString) 

              (2)創(chuàng)建事務(wù)
                   Transaction beginTransaction()

          (四)  org.hibernate.Transaction接口
                  
          用于事務(wù)管理.
                   void commit():提交事務(wù). 

          (五)  org.hibernate.Query接口
                   setXxx:設(shè)置HQL語句中的輸入?yún)?shù).
                   
                  Query  setMaxResults (int maxResults)  :結(jié)果集的最大記錄總數(shù).
                   ****************以下兩屬性,常用于分頁處理*****************
                  Query  setFirstResult(int firstResult)       :從結(jié)果集的第幾條記錄開始.
                  Query  setFetchSize(int fetchSize)          :從結(jié)果集中取(fetch)多少條記當出來.
          -------------------------------------------------------------------------------------------------------
                   List list():返回查詢結(jié)果集為List類型.(讀取全部數(shù)據(jù)映射為內(nèi)存的實體對象(即內(nèi)存中的數(shù)據(jù)庫).資源消耗大, 但可以按索引位置隨機查找數(shù)據(jù).)

                   Iterator iterate():返回查詢結(jié)果集為Iterator類型.(只能按照從前向后的順序查找數(shù)據(jù).但節(jié)省資源,只對查找的數(shù)據(jù)映射為實體對象.)

                   Object uniqueResult():只返回查詢結(jié)果集中,滿足第一個條件的數(shù)據(jù).

                   ScrollableResults scroll():返回查詢結(jié)果集為Iterator類型. 
          posted on 2007-11-21 16:02 紫蝶∏飛揚↗ 閱讀(1549) 評論(3)  編輯  收藏 所屬分類: 隨想Hibernate

          評論:
          # re: hibernate核心API 2008-01-02 13:24 | WPP
          分析的不錯啊!  回復  更多評論
            
          # re: hibernate核心API 2008-02-20 10:22 | d
          ffffffffff  回復  更多評論
            
          # re: hibernate核心API及其查詢分析 2008-11-06 11:45 | hibernate核心API及其查詢分析
          恩,不錯!收藏咯、、、  回復  更多評論
            
          主站蜘蛛池模板: 和平县| 舒城县| 邵东县| 鸡西市| 庆阳市| 马山县| 庆云县| 承德市| 临泉县| 宜州市| 两当县| 临洮县| 彰化市| 田阳县| 若羌县| 闸北区| 平谷区| 广西| 仁怀市| 色达县| 禹城市| 广南县| 南乐县| 淮阳县| 六枝特区| 郯城县| 虎林市| 拉萨市| 贺兰县| 嘉祥县| 古田县| 汉中市| 霍山县| 双牌县| 砚山县| 饶阳县| 徐州市| 广德县| 祁门县| 禹州市| 诏安县|