Hibernate學習(3)- *.hbm.xml詳解

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<!-- 
    package用於定義包的,那麼class就不用寫包名路徑了 
    schema指數據庫模式,一個模式下能夠有多張表
-->
<hibernate-mapping package="com.demo.pojo" >
    <!-- 
        class映射一個實體類
        提供了公共的無參構造方法  - 經過反射產生對象
        屬性用private修飾,而且生成對應的get、set方法
        類不能用final修飾  - hibernate會產生代理類(cglib)
        類須要指定標識 - 主鍵
        name表示實體類的類名
        table表示數據庫對應的表名,若是不寫默認是類名
     -->
    <class name="User" table="user">
        <!-- 
            id表示實體類的標識(OID) - 對應數據庫表中的主鍵
            name實體類的標識屬性名
            column表示數據庫表中的列名,若是不寫則數據庫列名與屬性名一致
            length 表示數據庫表中對應數據類型的長度,若是不寫有默認長度
            type表示類型,若是不寫,hibernate自動根據實體類的字段類型肯定
         -->
        <id name="id" column="id">
            <!-- 
                主鍵生成策略
                increment: 由hibernate管理主鍵,自動以遞增的方式生成標識符,每次增量爲1(id+1做爲主鍵);
                用於long,short,int類型生成自增主鍵(注意:集羣下不能使用;緣由:每次生成前,會去查詢最大的id) identity: 由底層數據庫生成主鍵。identity是由數據庫本身生成的,但這個主鍵必須設置爲自增加,前提條件是底層數據庫支持自動增加字段類型,
                通常來講像SQL Server,MYSQL這類的數據庫都是選擇identity sequence:採用數據庫提供的sequence機制生成主鍵。如oralce中的sequence hilo: 經過hi/lo算法實現的主鍵生成機制,須要額外的數據庫表或字段提供高位值來源 native: hibernate根據使用的數據庫自行判斷採用identity、hilo、sequence其中一種做爲主鍵生成方式。
              在hibernate配置中native是默認的,泛指的自增,
              也就是說除了oracle數據庫外(oracle下用native須要用到一個叫hibernate_sequence的sequence),
              大部分數據庫你均可以使用默認的native來表明自增。 assigned:主鍵由外部程序負責生成,在save()以前手動指定一個
--> <generator class="native"/> <!-- 自增 --> </id> <!-- 實體類屬性 name:指明實體類屬性名(區分大小寫) 另外:<property name="name"><column name="name"></column></property>,經過column指定數據庫列名 --> <property name="name"/> <property name="pwd"/> </class> </hibernate-mapping>

 

PS:源碼地址   https://github.com/JsonShare/hibernate-demohtml

 

PS:原文地址  http://www.cnblogs.com/JsonShare/p/8681786.htmlgit

相關文章
相關標籤/搜索