tbwshc

          hibernate操作數(shù)據(jù)庫的執(zhí)行步驟

          先舉個(gè)hibernate執(zhí)行SQL的例子:
            [java] view plaincopy
            public boolean addUser(UserDO userDO) {
            boolean b = false;
            if (userDO != null) {
            try {
            getHibernateTemplate().save(userDO);
            b = true;
            } catch (Exception e) {
            b = false;
            }
            } else {
            b = false;
            }
            return b;
            }
          一、hibernate操作數(shù)據(jù)庫的執(zhí)行步驟,其實(shí)很簡單,可以自己實(shí)現(xiàn)一個(gè)小的hibernate框架:
            1、運(yùn)用java反射機(jī)制,獲得user對(duì)象的類型user.class
            2、參考對(duì)象-關(guān)系映射元數(shù)據(jù)(可能是DO的spring注解,可能是hibernate配置文檔),找到和user類對(duì)應(yīng)的表為user表,并建立對(duì)象域跟表屬性的對(duì)應(yīng)
            3、根據(jù)以上映射信息,生成SQL語句
            4、通過JDBC API來執(zhí)行SQL語句
            二、hibernate的核心接口:
            1、Configuration接口:配置hibernate,根啟動(dòng)hibernate,創(chuàng)建sessionfactory對(duì)象。hibernate通過configuration實(shí)例來獲得對(duì)象-關(guān)系映射文件中的元數(shù)據(jù),以及動(dòng)態(tài)的配置hibernate屬性,然后創(chuàng)建sessionfactory實(shí)例。具體執(zhí)行過程如下:
            [java] view plaincopy
            Configuration config=new Configuration();
            創(chuàng)建configuration實(shí)例,configuration類的構(gòu)造方法中把a(bǔ)pplicationContext.xml文檔加載到內(nèi)存,tb讀取文檔中sessionFactory Bean的配置。然后運(yùn)用java反射機(jī)制,獲得userDO對(duì)象的類型UserDO。configuration類的addClass方法
            [java] view plaincopy
            config.addClass(userDO.class);
            該方法將hbm.xml文檔或者通過hibernate注解形式的“對(duì)象-關(guān)系映射元數(shù)據(jù)”讀入內(nèi)存,找到和UserDO類對(duì)應(yīng)的表為USER表,并建立對(duì)象域跟表屬性的對(duì)應(yīng)。
            2、sessionfactory接口:初始化hibernate,充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,創(chuàng)建session對(duì)象。一個(gè)sessionfactory實(shí)例對(duì)應(yīng)著一個(gè)數(shù)據(jù)存儲(chǔ)源。重量級(jí),一個(gè)數(shù)據(jù)庫只創(chuàng)建一個(gè)sessionfactory實(shí)例,它需要一個(gè)很大的緩存,用來存放預(yù)定義的SQL語句及映射的元數(shù)據(jù)等。
            3、session接口:負(fù)責(zé)保存、更新、刪除、加載和查詢對(duì)象。session對(duì)象不是線程安全的,因此應(yīng)該避免過多個(gè)線程共享一個(gè)session實(shí)例。當(dāng)session執(zhí)行sql時(shí)候,session會(huì)針對(duì)上面生成的對(duì)象和關(guān)系映射,動(dòng)態(tài)組成sql語句。
            4、transaction:事務(wù)管理接口。它對(duì)底層的事務(wù)接口做了封裝。
            5、query:執(zhí)行數(shù)據(jù)庫查詢。query實(shí)例封裝了一個(gè)HQL語句,HQL語句是面向?qū)ο蟮模妙惷皖惖膶傩浴?br />  三、hibernate的使用步驟:
            1、創(chuàng)建hibernate配置文件
            2、創(chuàng)建持久化類
            3、創(chuàng)建對(duì)象-關(guān)系映射文件
            4、通過hibernate API編寫數(shù)據(jù)庫訪問代碼

          posted on 2013-06-28 17:01 chen11-1 閱讀(1053) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          tbw淘寶商城-首頁

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 如皋市| 金塔县| 永吉县| 嘉义市| 苍溪县| 宜昌市| 卓尼县| 黑龙江省| 塔城市| 霍邱县| 岑溪市| 宾川县| 云南省| 绥阳县| 陆丰市| 荆州市| 沈丘县| 涟水县| 泰州市| 周宁县| 新河县| 嘉峪关市| 施秉县| 罗定市| 甘南县| 隆昌县| 德化县| 德令哈市| 通山县| 尼勒克县| 廉江市| 伊金霍洛旗| 广水市| 太白县| 汾阳市| 扶沟县| 云浮市| 佛冈县| 普安县| 明星| 石家庄市|