詳解hibernate實體映射文件

本文爲原創文章,轉載請註明出處: http://www.pm-road.com/index.php/2014/11/14/193/

Hibernate是一個開放源代碼的對象關係映射框架,對JDBC進行了非常輕量級的對象封裝, 也就是說之前操作數據庫的表現在可以直接操作對應的對象類,而數據庫的表和對象之間就應該有一定的映射關係,而這種映射關係大部分是採用了xml配置文件 的方式來進行一一匹配,接下來就詳細講解一下該配置文件。

一:hibernate配置文件和實體類一一對應

在生成一個配置文件的時候,一個配置文件對應一個實體類,而其中的屬性也會一一對應,比如說:我有一個User.java實體類,那我就應該有一個 User.hbm.xml類,至於該配置文件的存儲位置在哪,就要在hibernate的主配置文件中設置(在此不多講,而User.hbm.xml這個 名稱也不一定命名爲User.hbm.xml,可以命名爲Person.hbm.xml,這個接下來會講)。

一個實體類對應一個配置文件類,同樣,實體類中的屬性也要和配置文件中的屬性一一對應,比如說user.java的代碼有如下屬性:

public class User{
              private String userId;
              private String userName;
              private int userAge;
              private String userSex;
              //get  set 方法
              ……
   }


 

那麼在配置文件User.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”>
<hibernate-mapping>    <class name=”User” table=”T_User”>        <id name=”userId”>            <generator class=”assigned”/>        </id>        <property name=”userName”/>        <property name=”userAge“/>        <property name=”userSex“/>    </class></hibernate-mapping>


上面的配置只是hibernate實體映射的一部分,接下來詳細講解各屬性。

二:hibernate 實體映射文件結構

hiberante 的實體映射文件其實就是一個xml文件,首先要在xml文件中引用<!DOCTYPE hibernate-mapping PUBLIC
 “-//Hibernate/Hibernate Mapping DTD 3.0//EN”
 “http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd”> 這是固定寫法。

然後寫上根節點:<hibernate-mapping></hibernate-mapping>

此根節點下面總共有14個主體屬性,每個主體屬性下面又會有很多小的屬性,分別如下:

    <!–主要用到的主體屬性,表示和哪一個實體類進行匹配–>
    <class name=”” table=””></class> class標籤詳細介紹

    <!–使用該屬性可以聲明hibernate如何創建、生成數據庫–>

    <database-object></database-object> database-object標籤詳細介紹

    <!–使用該屬性是hibernate在進行sql語句join等時用到:聯合抓取–>
    <fetch-profile name=””></fetch-profile>

    <!–hibernate過濾器–>
    <filter-def name=””></filter-def>filter-def標籤詳細介紹

    <!–允許自定義的id生成器實現的短命名–>
    <identifier-generator name=”” class=””/>

    <!–導入java包,class指向該配置文件所對應實體類的包名,與class屬性中的name有關聯–>
    <import class=””/>

    <!–定義一個連接子類–>
    <joined-subclass></joined-subclass>joined-subclass標籤詳細介紹

    <!–meta屬性說明該配置文件對應實體類的一些屬性–>
    <meta attribute=””></meta>meta標籤詳細介紹

    <!–query標籤中可以直接寫hql查詢語句–>
    <query name=””></query>query標籤詳細介紹

    <!–resultset 定義了一個命名sql的返回結果-->
    <resultset name=””></resultset>

     <!–sql-query標籤中可以直接寫sql查詢語句–>
    <sql-query name=””></sql-query>

    <!–子類–>
    <subclass></subclass>

     <!–定義新的Hibernate數據類型–>
    <typedef name=”” class=””></typedef>

    <!–定義一個聯合子類–>
    <union-subclass></union-subclass>

上面的14個屬性就是hibernate實體映射文件的大體結構,而其中主要用到了<class name=”” table=””></class>屬性,其它屬性視情況而定,不一定能用到。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章