一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Hibernate筆記(一)

 kakaxi 2011-07-21

Hibernate筆記(一)

分類: javaEE 71人閱讀 評(píng)論(0) 收藏 舉報(bào)

1. 使用Hibernate 導(dǎo)出數(shù)據(jù)庫(kù)表

(ExportDB.java 工具類)

/**

 * 使用hibernate導(dǎo)出數(shù)據(jù)庫(kù)(由modlehibernate配置文件生成數(shù)據(jù)庫(kù)表),但要先有數(shù)據(jù)庫(kù)

 */

package com.zoukang.usermgr.util;

 

import org.hibernate.cfg.Configuration;

import org.hibernate.tool.hbm2ddl.SchemaExport;

 

public class ExportDB {

    public static void main(String[] args) {

       // 讀取hbiernate.cfg,xml文件

       Configuration cfg = new Configuration().configure();

       // 創(chuàng)建SchemaExport

       SchemaExport export = new SchemaExport(cfg);

       export.create(truetrue);

    }

}

 

2. 采用編程式異常:

1.getCurrensSession()和openSession()的區(qū)別?

    *采用getCurrentSession()方法創(chuàng)建的session會(huì)綁定到當(dāng)前線程中而

     采用openSession()的方法創(chuàng)建的session不會(huì)綁定到當(dāng)前線程中

    *采用getCurrentSession()創(chuàng)建的session會(huì)在commintrollback后自動(dòng)關(guān)閉

    而采用openSession()方法創(chuàng)建的session必須手動(dòng)關(guān)閉

2.使用getCurrentSEssion(0必須在hibernate.cfg.xml文件中進(jìn)行配置:

    *如果采用的是本地事務(wù)(JDBC事務(wù))

    <property name="hibernate.current_session_cuntext_class">thread</property>

    *如果采用的是全局事務(wù)(JTA事務(wù))

    <property name="hibernate.current_session_context_class">jta</property>

 

 

3.采用聲明式事務(wù):

a.聲明式事務(wù)的配置

         * 配置 SessionFactory

         * 配置事務(wù)管理器

         * 事務(wù)傳播特性

         * 哪些類哪些方法使用事務(wù)

 b.編寫業(yè)務(wù)邏輯方法

         *

 

4。Hibernate自帶的分頁(yè)機(jī)制是什么?如果不使用Hibernate自帶的分頁(yè),則采用什么方式分頁(yè)?

    1、hibernate自帶的分頁(yè)機(jī)制:獲得Session對(duì)象后,從Session中獲得Query對(duì)象。用Query.setFirstResult():設(shè)置要顯示的第一行數(shù)據(jù),

       Query.setMaxResults():設(shè)置要顯示的最后一行數(shù)據(jù)。

    2、不使用hibernate自帶的分頁(yè),可采用sql語(yǔ)句分頁(yè),

       如:5:為每頁(yè)顯示的記錄,2為當(dāng)前頁(yè): select * top 5 from table where tabId not in (select tabId top (2-1)*5 from table);

5。Hibernate核心接口:

  Hibernate的核心接口一共有5個(gè),分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個(gè)核心接口在任何開發(fā)中都會(huì)用到。通過這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這五個(gè)核心接口分別加以介紹。

  ·Session接口:Session接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見的SQL語(yǔ)句。)。但需要注意的是Session對(duì)象是非線程安全的。同時(shí),Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語(yǔ)時(shí),其實(shí)指的是Hibernate中的session,而以后會(huì)將HttpSesion對(duì)象稱為用戶session。

  ·SessionFactory接口:SessionFactroy接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫(kù)時(shí),可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè)SessionFactory。

  ·Configuration接口:Configuration接口負(fù)責(zé)配置并啟動(dòng)Hibernate,創(chuàng)建SessionFactory對(duì)象。在Hibernate的啟動(dòng)的過程中,Configuration類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對(duì)象。

  ·Transaction接口:Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼。

  ·Query和Criteria接口:Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢。它可以使用HQL語(yǔ)言或SQL語(yǔ)句兩種表達(dá)方式。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    白白操白白在线免费观看| 亚洲中文字幕剧情在线播放| 高清一区二区三区不卡免费| 亚洲第一香蕉视频在线| 亚洲精品国男人在线视频| 国产成人亚洲综合色就色| 插进她的身体里在线观看骚| 我要看日本黄色小视频| 不卡中文字幕在线视频| 国产成人免费高潮激情电 | 亚洲午夜福利视频在线| 欧美黄色黑人一区二区| 五月情婷婷综合激情综合狠狠 | 欧美日韩综合在线精品| 夫妻性生活一级黄色录像| 国产超碰在线观看免费| 国产精品欧美在线观看| 日本午夜福利视频免费观看| 日韩一级欧美一级久久| 国产免费自拍黄片免费看| 久久香蕉综合网精品视频| 精品亚洲av一区二区三区| 欧美日韩一级黄片免费观看| 日本人妻丰满熟妇久久| 日韩精品一区二区三区四区 | 亚洲视频在线观看免费中文字幕| 日本欧美视频在线观看免费| 一区二区三区欧美高清| 日韩在线视频精品视频| 中文字幕人妻av不卡| 国产又粗又猛又大爽又黄| 亚洲欧美日韩在线中文字幕| 欧美日韩人妻中文一区二区| 久热久热精品视频在线观看| 国产毛片对白精品看片| 中文字幕亚洲精品乱码加勒比| 亚洲男人天堂成人在线视频| 麻豆一区二区三区精品视频| 国产又大又硬又粗又湿| 日韩在线一区中文字幕| 麻豆在线观看一区二区|