hibernate筆記--實體類映射文件"*.hbm.xml"詳解


轉載:http://www.cnblogs.com/fingerboy/p/5233939.html

實體類就是指普通的POJO,Hibernate並不知道那個實體類對應數據庫的哪一張表,所以還需要配置一下,常用的方式就是*.hbm.xml文件[配置與@注解配置,這里介紹前者的詳細屬性:

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

<!-- package聲明pojo類所在的包,如果不寫那么在class的name屬性里需要指定包名全路徑 
    schema指數據庫模式,一個模式下可以有多張表
    -->
<hibernate-mapping package="com.wang.pojo">
    <!-- class指映射一下pojo類,提供了公共的無參構造方法,通過反射產生對象
            屬性用private修飾,並且生成get,set方法
            類不能用final來修飾,
            類需要指明標識  ,即id屬性
            name:表示pojo類名
            table:標識對應的數據庫表名 -->
    <class name="User" table="user">
    <!-- id:表示實體類的標識
        對應數據庫表中的主鍵
        name:是指實體類的標識屬性名
        column表示對應數據庫表的列名,如果不寫,則數據庫表中列名和屬性名一致
        length:標識數據庫表中對應數據類型的長度,如果不寫有默認長度
        type表示類型,如果不寫hibernate可以找到對應的pojo類的屬性的類型,可以寫成int,string,java.lang.Integer等等 -->
        <id name="id" column="id" >
            <!-- 主鍵生成策略 
            native:根據底層數據庫能力選擇identity,sequence,或者hilo中的一個
            
            -->
            <generator class="native"></generator>
        </id>
        <!-- 實體類屬性 -->
        <property name="name"/>    
        <property name="pwd"/>    
    </class>

</hibernate-mapping>

  

  • 主鍵映射

實體類最好有一個主鍵列,並有get/set方法,主鍵最好使用可以為Null值的數據類型,比如Integer,Long,String,而不要使用int ,long等,因為如果主鍵為null,表示這個實體類還沒有保存到數據庫,是一個臨時狀態(Transient),而int,long等基本數據類型沒有這個功能.

  主鍵生成規則:也成為主鍵生成策略,用的最多的就是native(自增長策略),

    native:自動方式,根據底層數據庫自動選擇.

在class標簽下,配置主鍵映射為:

<id name="id" column="id" >
    <generator class="native"></generator>
</id>

  

  • 普通屬性映射

普通屬性就是除主鍵外,java基本數據類型的屬性,比如Integer(int),String,Date等,注意Integer默認為null,int默認為0.

  xml中使用<property />標簽配置普通屬性.type指定列類型,

日期屬性配置,與普通屬性配置相同,只是type中指定的是日期類型即可,取值可以有date,time,timestamp(簡寫方式)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM