笑看風云

          一切從頭開始
          posts - 28, comments - 1, trackbacks - 0, articles - 2

          Hibernate配置文件(轉載)

          Posted on 2008-12-11 11:26 笑看風云 閱讀(1455) 評論(0)  編輯  收藏 所屬分類: hibernate
          <!--標準的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的編碼方式-->
                           
          <?xml version='1.0' encoding='gb2312'?>
          <!--表明解析本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>    
                
          <!--配置數據庫的驅動程序,Hibernate在連接數據庫時,需要用到數據庫的驅動程序-->
                     
          <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
                 
          <!--設置數據庫的連接url:jdbc:mysql://localhost/hibernate,其中localhost表示mysql服務器名稱,此處為本機,     hibernate是數據庫名-->  
                      <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate</hibernate>
              <!--連接數據庫是用戶名-->
                     
          <property name="hibernate.connection.username">root</property> 
                    
          <!--連接數據庫是密碼-->
                     
          <property name="hibernate.connection.password">123456</property>         
                    
          <!--數據庫連接池的大小-->
                     
          <property name="hibernate.connection.pool.size">20</property>        
                   
          <!--是否在后臺顯示Hibernate用到的SQL語句,開發時設置為true,便于差錯,程序運行時可以在Eclipse的控制臺顯示Hibernate的執行Sql語句。項目部署后可以設置為false,提高運行效率-->
                   
          <property name="hibernate.show_sql">true</property>
                   
          <!--jdbc.fetch_size是指Hibernate每次從數據庫中取出并放到JDBC的Statement中的記錄條數。Fetch Size設的越大,讀數據庫的次數越少,速度越快,Fetch Size越小,讀數據庫的次數越多,速度越慢-->
                   
          <property name="jdbc.fetch_size">50</property>
                   
          <!--jdbc.batch_size是指Hibernate批量插入,刪除和更新時每次操作的記錄數。Batch Size越大,批量操作的向數據庫發送Sql的次數越少,速度就越快,同樣耗用內存就越大-->
                   
          <property name="jdbc.batch_size">23</property>
                   
          <!--jdbc.use_scrollable_resultset是否允許Hibernate用JDBC的可滾動的結果集。對分頁的結果集。對分頁時的設置非常有幫助-->
                   
          <property name="jdbc.use_scrollable_resultset">false</property>
                   
          <!--connection.useUnicode連接數據庫時是否使用Unicode編碼-->
                   
          <property name="Connection.useUnicode">true</property>
                   
          <!--connection.characterEncoding連接數據庫時數據的傳輸字符集編碼方式,最好設置為gbk,用gb2312有的字符不全-->
              
          <property name="connection.characterEncoding">gbk</property>      
                   
                   
          <!--hibernate.dialect 只是Hibernate使用的數據庫方言,就是要用Hibernate連接那種類型的數據庫服務器。-->
                     
          <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
                   
          <!--指定映射文件為“hibernate/ch1/UserInfo.hbm.xml”-->         
                     
          <mapping resource="org/mxg/UserInfo.hbm.xml">
            
          </session-factory>
            
          </hibernate-configuration>    

          配置文件中映射元素詳解 

          對象關系的映射是用一個XML文檔來說明的。映射文檔可以使用工具來生成,如XDoclet,Middlegen和AndroMDA等。下面從一個映射的例子開始講解映射元素,映射文件的代碼如下。

          ?xml version="1.0"?

          !--

          所有的XML映射文件都需要定義如下所示的DOCTYPE。

          Hibernate會先在它的類路徑(classptah)中搜索DTD文件。

          --

          !DOCTYPE hibernate-mapping PUBLIC

          "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"

          !--

          hibernate
          -mapping有幾個可選的屬性:

          schema屬性指明了這個映射的表所在的schema名稱。

          default-cascade屬性指定了默認的級聯風格 可取值有 none、save、update。

          auto
          -import屬性默認讓我們在查詢語言中可以使用非全限定名的類名 可取值有 truefalse

          package屬性指定一個包前綴。

          --

          <hibernate
          -mapping schema="schemaName" default-cascade="none" 

          auto
          -import="true" package="test"

          !--用class元素來定義一個持久化類 --

          class name="People" table="person"

          !-- id元素定義了屬性到數據庫表主鍵字段的映射。--

          <id name
          ="id"

          !-- 用來為該持久化類的實例生成唯一的標識 --

          <generator 
          class="native"/

          /id>

          !-- discriminator識別器 是一種定義繼承關系的映射方法--

          <discriminator column
          ="subclass" type="character"/

          !-- property元素為類聲明了一個持久化的,JavaBean風格的屬性--

          <property name
          ="name" type="string"

          <column name
          ="name" length="64" not-null="true" /

          /property>

          <property name
          ="sex"

          not
          -null="true" 

          update
          ="false"/

          !--多對一映射關系--

          <many
          -to-one name="friend"

          column
          ="friend_id"

          update
          ="false"/

          !--設置關聯關系--

          <set name
          ="friends" inverse="true" order-by="id"

          <key column
          ="friend_id"/

          !—一對多映射--

          <one
          -to-many class="Cat"/

          /set>

          /class

          /hibernate-mapping>
           


          組件應用的方法 

          組件有兩種類型,即組件(component)和動態組件(dynamic
          -component)。在配置文件中,component元素為子對象的元素與父類對應表的字段建立起映射關系。然后組件可以聲明它們自己的屬性、組件或者集合。component元素的定義如下所示:

          <component name
          ="propertyName" class="className" insert="true|false" 

          upate
          ="true|false" access="field|property|ClassName"> 

          <property ..
          /

          <many
          -to-one /

          ..

          /component> 
           


          在這段代碼中,name是指屬性名,class是類的名字,insert指的是被映射的字段是否出現在SQL的INSERT語句中,upate指出被映射的字段是否出現在SQL的UPDATE語句中,access指出訪問屬性的策略。

          Hiebernate的基本配置 

          Hibernate的數據庫連接信息是從配置文件中加載的。Hibernate的配置文件有兩種形式:一種是XML格式的文件,一種是properties屬性文件。properties形式的配置文件默認文件名是hibernate.properties,一個properties形式的配置文件內容如下所示:

          #指定數據庫使用的驅動類

          hibernate.connection.driver_class 
          = com.mysql.jdbc.Driver r

          #指定數據庫連接串

          hibernate.connection.url 
          = jdbc:mysql://localhost:3306/db

          #指定數據庫連接的用戶名

          hibernate.connection.username 
          = user

          #指定數據庫連接的密碼

          hibernate.connection.password 
          = password

          #指定數據庫使用的方言

          hibernate.dialect 
          = net.sf.hibernate.dialect.MySQLDialect

          #指定是否打印SQL語句

          hibernate.show_sql
          =true 
           

           

          文章出處:http:
          //www.diybl.com/course/3_program/java/javajs/200886/134789.html

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 鲁甸县| 盐津县| 镇远县| 宜黄县| 克山县| 乐山市| 保定市| 鱼台县| 嫩江县| 遂宁市| 宜君县| 大名县| 永和县| 天长市| 青神县| 呈贡县| 乡城县| 屯门区| 洛浦县| 玉树县| 江孜县| 澄迈县| 贵溪市| 浑源县| 城固县| 南平市| 洮南市| 黎平县| 青冈县| 大竹县| 商都县| 英德市| 泽库县| 法库县| 四川省| 清原| 友谊县| 德阳市| 大关县| 东乡族自治县| 名山县|