Hibernate.cfg.xml配置文件結(jié)構(gòu)詳解

Hibernate.cfg.xml配置文件結(jié)構(gòu)詳解

Hibernate中配置主要分為兩種:
一種包含了Hibernate與數(shù)據(jù)庫的基本連接信息,在Hibernate工作的初始階段偿曙,這些信息被先后加載到Configuration和SessionFactory實例悯恍;

另一種包含了Hibernate的基本映射信息,即系統(tǒng)中每一個類與其對應(yīng)的數(shù)據(jù)庫表之間的關(guān)聯(lián)信息,在Hibernate工作的初始階段,這些信息通過hibernate.cfg.xml的mapping節(jié)點被加載到Configuration和SessionFactory實例。這兩種文件信息包含了Hibernate的所有運行期參數(shù)不脯。

下面我們用詳細的例子來說明這兩種文件的基本結(jié)構(gòu)和內(nèi)容。

<?xml version='1.0' encoding='UTF-8'?>     
<!--表明解析本XML文件的DTD文檔位置刻诊,DTD是Document Type Definition 的縮寫,即文檔類型的定義,XML解析器使用DTD文檔來檢查XML文件的合法性防楷。hibernate.sourceforge.net/hibernate-configuration-3.0dtd可以在Hibernate3.1.3軟件包中的src\org\hibernate目錄中找到此文件-->     
<!DOCTYPE hibernate-configuration PUBLIC     
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"     
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">     
    <!--Hibernate配置文件的根元素,其他文件要包含在其中-->          
    <hibernate-configuration>     
      <!--表明以下的配置是針對session-factory配置的,SessionFactory是Hibernate中的一個類则涯,這個類主要負責保存HIbernate的配置信息复局,以及對Session的操作-->     
      <session-factory>   
          <!-- 1冲簿,數(shù)據(jù)庫連接信息: -->       
          <!--配置數(shù)據(jù)庫的驅(qū)動程序,Hibernate在連接數(shù)據(jù)庫時亿昏,需要用到數(shù)據(jù)庫的驅(qū)動程序-->     
          <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver </property>     
          <!--設(shè)置數(shù)據(jù)庫的連接url:jdbc:mysql://localhost:3306/dbname,其中l(wèi)ocalhost表示mysql服務(wù)器名稱峦剔,此處為本機,    dbname是數(shù)據(jù)庫名-->      
          <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/dbname</property>      
          <!--連接數(shù)據(jù)庫是用戶名-->     
          <property name="hibernate.connection.username">root </property>     
          <!--連接數(shù)據(jù)庫是密碼-->     
          <property name="hibernate.connection.password">123456 </property>   
          <!--hibernate.dialect 只是Hibernate使用的數(shù)據(jù)庫方言,就是要用Hibernate連接那種類型的數(shù)據(jù)庫服務(wù)器角钩。-->     
          <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect </property>   
            
          <!-- 以下信息可選 -->  
          <!--jdbc.use_scrollable_resultset是否允許Hibernate用JDBC的可滾動的結(jié)果集吝沫。對分頁的結(jié)果集。對分頁時的設(shè)置非常有幫助-->     
          <property name="jdbc.use_scrollable_resultset">false </property>     
          <!--connection.useUnicode連接數(shù)據(jù)庫時是否使用Unicode編碼-->     
          <property name="Connection.useUnicode">true </property>     
          <!--connection.characterEncoding連接數(shù)據(jù)庫時數(shù)據(jù)的傳輸字符集編碼方式递礼,-->     
          <property name="connection.characterEncoding">utf-8 </property>        
                     
          <!--2惨险,數(shù)據(jù)庫連接池信息:-->     
          <property name="hibernate.connection.pool.size">20 </property>     
          <!-- 指定連接池的最大連接個數(shù),使用連接池需要加載所有的鏈接池的JAR文件脊髓,JAR文件在Hibernate文件夾下的“l(fā)ib\optional\c3p0”中 -->    
           <property name="hibernate.c3p0.max_size">30</property>  
           <property name="hibernate.c3p0.min_size">10</property>   
           <property name="hibernate.c3p0.timeout">5000</property><!-- 指定連接池里連接超時時長辫愉,即最大時間 -->   
             
          <!--3,數(shù)據(jù)庫一次操作時的記錄數(shù)::-->     
          <!--jdbc.fetch_size是指Hibernate每次從數(shù)據(jù)庫中取出并放到JDBC的Statement中的記錄條數(shù)供炼。Fetch Size設(shè)的越大一屋,讀數(shù)據(jù)庫的次數(shù)越少窘疮,速度越快袋哼,F(xiàn)etch Size越小,讀數(shù)據(jù)庫的次數(shù)越多闸衫,速度越慢-->     
          <property name="jdbc.fetch_size">50 </property>     
          <!--jdbc.batch_size是指Hibernate批量插入,刪除和更新時每次操作的記錄數(shù)涛贯。Batch Size越大,批量操作的向數(shù)據(jù)庫發(fā)送Sql的次數(shù)越少蔚出,速度就越快弟翘,同樣耗用內(nèi)存就越大-->     
          <property name="jdbc.batch_size">23 </property>     
            
             
          <!--4,是否顯示sql:-->            
          <!--是否在后臺顯示Hibernate用到的SQL語句骄酗,開發(fā)時設(shè)置為true稀余,便于差錯,程序運行時可以在Eclipse的控制臺顯示Hibernate的執(zhí)行Sql語句趋翻。項目部署后可以設(shè)置為false睛琳,提高運行效率-->     
          <property name="hibernate.show_sql">true </property>   
            
            
          <!--  
           create: 先刪表,再建表踏烙。  
           create-drop: 啟動時建表师骗,退出前刪表。  
           update: 如果表結(jié)構(gòu)不一致讨惩,就創(chuàng)建或更新辟癌。  
           validate: 啟動時驗證表結(jié)構(gòu),如果不致就拋異常荐捻。  
          -->  
          <property name="hibernate.hbm2ddl.auto">update</property>  
            
          <!-- 5,開啟二級緩存使用: -->   
          <property name="hibernate.cache.use_second_level_cache">true</property>  
          <propertyname name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</propertyname><!-- 指定緩存產(chǎn)品所需的類 -->  
          <property name="hibernate.cache.use_query_cache">true</property><!-- 啟用查詢緩存 -->  
            
                         
           <!--6黍少,指定映射文件寡夹,可映射多個映射文件-->            
          <mapping resource="org/mxg/UserInfo.hbm.xml">     
  </session-factory>     
  </hibernate-configuration> 
  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市厂置,隨后出現(xiàn)的幾起案子要出,更是在濱河造成了極大的恐慌,老刑警劉巖农渊,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件患蹂,死亡現(xiàn)場離奇詭異,居然都是意外死亡砸紊,警方通過查閱死者的電腦和手機传于,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來醉顽,“玉大人沼溜,你說我怎么就攤上這事∮翁恚” “怎么了系草?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長唆涝。 經(jīng)常有香客問我找都,道長,這世上最難降的妖魔是什么廊酣? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任能耻,我火速辦了婚禮,結(jié)果婚禮上亡驰,老公的妹妹穿的比我還像新娘晓猛。我一直安慰自己,他們只是感情好凡辱,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布戒职。 她就那樣靜靜地躺著,像睡著了一般透乾。 火紅的嫁衣襯著肌膚如雪洪燥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天续徽,我揣著相機與錄音蚓曼,去河邊找鬼。 笑死钦扭,一個胖子當著我的面吹牛纫版,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播客情,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼其弊,長吁一口氣:“原來是場噩夢啊……” “哼癞己!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起梭伐,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤痹雅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后糊识,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绩社,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年赂苗,在試婚紗的時候發(fā)現(xiàn)自己被綠了愉耙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡拌滋,死狀恐怖朴沿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情败砂,我是刑警寧澤赌渣,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站昌犹,受9級特大地震影響坚芜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜祭隔,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一货岭、第九天 我趴在偏房一處隱蔽的房頂上張望路操。 院中可真熱鬧疾渴,春花似錦、人聲如沸屯仗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽魁袜。三九已至桩撮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間峰弹,已是汗流浹背店量。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鞠呈,地道東北人融师。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蚁吝,于是被迫代替她去往敵國和親旱爆。 傳聞我的和親對象是個殘疾皇子舀射,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Hibernate中配置主要分為兩種:一種包含了Hibernate與數(shù)據(jù)庫的基本連接信息,在Hibernate工作...
    FTOLsXD閱讀 2,032評論 0 10
  • Hibernate: 一個持久化框架 一個ORM框架 加載:根據(jù)特定的OID,把一個對象從數(shù)據(jù)庫加載到內(nèi)存中OID...
    JHMichael閱讀 1,963評論 0 27
  • 本文包括: 1怀伦、CRM 項目的整體介紹 2脆烟、Hibernate 框架概述 3、Hibernate 快速入門 4房待、H...
    廖少少閱讀 3,466評論 9 66
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法邢羔,類相關(guān)的語法,內(nèi)部類的語法桑孩,繼承相關(guān)的語法张抄,異常的語法,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • 本文中我們介紹并比較兩種最流行的開源持久框架:iBATIS和Hibernate,我們還會討論到Java Persi...
    大同若魚閱讀 4,304評論 4 27