Hibernate入門-----Hiberna核心文件詳解

Hibernate入門—–Hiberna核心文件詳解

            ---ONE Goal , ONE Passion !

Hiberna核心文件詳解

映射文件: *.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
    映射文件的dtd信息.打開hibernate.jar,在org.hibernate包中可找到hibernate-mapping-3.0.dtd文件,將dtd約束copy即可.
    <!DOCTYPE hibernate-mapping PUBLIC
            '-//Hibernate/Hibernate Mapping DTD 3.0//EN'
            'http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd'>
    <hibernate-mapping>
        <!-- 類與表的映射製作在class元素上 -->
        <!-- name:全路徑實體類名 -->
        <!-- table:表名 -->

        <class name="實體類名" table="數據庫中的表明" >
            <!-- 主鍵的映射對應在id元素上 -->
            <!-- name:對象中用於作爲主鍵的屬性名 -->
            <!-- colomn:表中主鍵字段名 -->
            <!-- 如果name與column值相同,可以省略column -->
            <id name="id" column="id">
                <!-- 將generator元素class屬性設置爲"assigned" -->
                <generator class="assigned" />
            </id>
            <!-- 其他屬性與字段的映射製作在property元素上 -->
            <!-- name:類中的屬性名 -->
            <!-- column:表中的字段名 -->
            <!-- 如果name與column值相同,可以省略column -->
            <property name="name" />
            <property name="pwd" />

        </class>
    </hibernate-mapping>

hibernate-mapping元素屬性

定義了映射文件的基本信息.

    <hibernate-mapping package="包名" schema="數據庫schema名 " catalog="數據庫catalog名" default-access="property" default-lazy="true" default-cascade="none">
  • package :爲映射文件中的類指定一個包前綴,這樣class中name可以直接寫類,不用是全類名
  • schema : 指定數據庫schema名
  • catalog : 數據庫catalog名
  • default-access : hibernate訪問屬性時的策略.

    property使用getter,setter方法訪問成員變量.
    
    field使用反射的方式訪問成員變量.
    
  • default-cascade : 是否使用默認的級聯
  • default-lazy : 指定使用默認的延時加載策略.默認true

class元素屬性

來描述一個持久化的類.

<class name="持久化類或接口的類名" table="表明" catalog="數據庫的catalog名" lazy="true" rowid="" mutable="true">
  • name : 持久化類或接口的類名
  • table : 數據庫表名,默認爲類名
  • catalog : 數據庫的catalog名
  • lazy : 是否使用延遲加載
  • mutable : 類的實例是否可變 ?
  • rowid : 指定是否可以使用ROWID ?

class元素屬性

    <id name="類中OID屬性名" column="列名" access="" type="">
  • name : 類中OID屬性名
  • column : 列名, 默認爲屬性名
  • access : 屬性訪問策略, 會覆蓋hibernate-mapping中defalut-access屬性
  • type : 屬性的數據類型,一般不寫,框架自動填裝. 類中一般使用包裝類.

主鍵生成策略——id屬性下的generator子元素

  • assigned :

    1.策略是由程序員手工控制輸入數據模型OID的一種id生成策略.

    2.默認的生成策略.

  • increment :

    1.數據庫字段爲整形數據類型.

    2.策略是由Hibernate內部控制生成OID的一種id生成策略,每次增量+ 1.

    3.多個連接同時對一個表進行操作時,可能獲取到相同的max值,導致相同id的出現.不能在集羣環境下使用.

  • identity :

    1.數據庫底層控制生成OID的一種id生成策略.
    2.數據庫中id字段爲整型數值類型,並且要求設置成自增特性

  • sequence:

    1. 數據庫底層控制生成OID的一種id生成策略
    2. 要求數據庫中id字段爲整型數值類型
    3. 只能應用於提供序列支持的數據庫, 如oracle.
  • native :

    1.會根據所使用的數據庫類型,在(identity,sequence,hilo)生成策略中自動選擇對應的id生成策略

  • uuid :

    1.要求數據庫中id字段爲字符串類型


property元素屬性

    <property name="name" unique="false" not-null="true"/>
  • unique : 該列是否唯一
  • not-null: 該列是否允許爲空

核心配置文件: hibernate.cfg.xml

兩種格式:

1.properties屬性文件格式,鍵值對存放信息

2.xml文件格式.最常用

hibernate.cfg.xml文件一般放在src下.發佈後會在web-inf/classes路徑下.

    <?xml version='1.0' encoding='utf-8'?>
    映射文件的dtd信息.打開hibernate.jar,在org.hibernate包中可找到hibernate-configuration-3.0.dtd文件,將dtd約束copy即可.
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
        <session-factory>
            <!-- 數據庫連接的配置 -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://localhost:3306/userdb</property>
            <property name="connection.username">root</property>
            <property name="connection.password">123456</property>

            <!-- 可選配置 -->
            <!--是否支持方言  -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
            <!--執行CURD時是否打印sql 語句  -->
            <property name="show_sql">true</property>
             <!-- 事務是否自動提交 -->
        <property name="connection.autocommit">true</property>

            <!-- 資源註冊 -->
            <mapping resource="cn/fy/modle/UserModel.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>
發佈了122 篇原創文章 · 獲贊 74 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章