1. 程式人生 > >自己建立 hibernate mapping

自己建立 hibernate mapping

不一定要用 MyEclipse 的 Hibernate 框架生成資料庫表的對映檔案,其實很簡單:
 
在 Eclipse 環境中,新建一個專案並新增 Hibernate 框架.
 
假設有兩個表,分別是 MainClass 和 SubClass ,下面是兩個表的表結構:(使用 MySQL 資料庫)

Createtable MainClass(
--ID
MID int AUTO_INCREMENT primarykey,
--main class name
MClsName varchar(20notnull)ENGINE=MyISAM DEFAULT CHARSET=utf8;

Createtable SubClass(
--sub class ID
SID int AUTO_INCREMENT primarykey,
--sub class name
SClsName varchar(20notnull,
--main class ID (外來鍵)
MID intnotnull)ENGINE=MyISAM DEFAULT CHARSET=utf8;

現在來建立 MainClass 的類 MainClass.java,程式碼如下:

publicclass MainClass {
    
privateint mainClsId;
    
private String mainClsName;

    
// mainClsId Getter and Setter

publicint getMainClsId() {
        
return mainClsId;
    }

    
publicvoid setMainClsId(int mainClsId) {
        
this.mainClsId = mainClsId;
    }


    
// mainClsName Getter and Setter
public String getMainClsName() {
        
return mainClsId;
    }

    
publicvoid setMainClsName(String mainClsName) {
        
this.mainClsName = mainClsName;
    }

}



//SubClass.java,程式碼如下:
publicclass SubClass {
    
privateint subClsId;
    
private String subClsName;
    
privateint mainClsId;
    
private MainClass mainClass;
    
    
// mainClass Getter and Setter
public MainClass getMainClass() {
        
return mainClass;
    }

    
publicvoid setMainClass(MainClass mainClass) {
        
this.mainClass = mainClass;
    }

    
// mainClsId Getter and Setter
publicint getMainClsId() {
        
return mainClsId;
    }

    
publicvoid setMainClsId(int mainClsId) {
        
this.mainClsId = mainClsId;
    }

    
    
// subClsId Getter and Setter
publicint getSubClsId() {
        
return subClsId;
    }

    
publicvoid setSubClsId(int subClsId) {
        
this.subClsId = subClsId;
    }

    
    
// subClsName Getter and Setter
public String getSubClsName() {
        
return subClsName;
    }

    
publicvoid setSubClsName(String subClsName) {
        
this.subClsName = subClsName;
    }

    
}

接著就是寫 對映檔案了,
MainClass.java 的對映檔案 MainClass.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    
<class name="com.demo.model.MainClass" table="MainClass" catalog="test">
        
<id name="mainClsId" type="integer"><!--name 是 MainClass.java 中的 mainClsId 屬性-->
            
<column name="MID"/><!--name 是 MainClass 表中對應的列名-->
            
<generator class="native"/>
        
</id>
        
<property name="mainClsName" type="string">
            
<column name="MClsName" length="20" not-null="true"/>
        
</property>
    
</class>
</hibernate-mapping>

SubClass.java 的對映檔案 SubClass.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    
<class name="com.demo.model.SubClass" table="SubClass" catalog="test">
        
<id name="subClsId" type="integer"><!--name 是 SubClass.java 中的 subClsId 屬性-->
            
<column name="SID"/><!--name 是 SubClass 表中對應的列名-->
            
<generator class="native"/>
        
</id>
        
<property name="subClsName" type="string">
            
<column name="SClsName" length="20" not-null="true"/>
        
</property>
        
<!--這裡很重要 ,作用是宣告這段是資料庫表中的外來鍵-->
        
<property name="mainClsId" column="MID"/>
        
<!--這裡的 column ,應該對應宣告 外來鍵的 name ,即 mainClsId ,而 name="mainClass" 就是 SubClass 裡的一個屬性-->
                
<many-to-one name="mainClass" column="mainClsId" 
                        class
="com.demo.model.MainClass" 
                        lazy
="false" 
                        not-found
="ignore" 
                        cascade
="none" 
                        insert
="false" 
                        update
="false"/>
    
</class>
</hibernate-mapping>

好..最後一步就是在 hibenate 的配置檔案中加上這兩個 對映檔案 地址就可以了

<mapping resource="com/demo/model/MainClass.hbm.xml"></mapping>
    
<mapping resource="com/demo/model/SubClass.hbm.xml"></mapping>

大功告成~~~~ :)

相關推薦

自己建立 hibernate mapping

不一定要用 MyEclipse 的 Hibernate 框架生成資料庫表的對映檔案,其實很簡單: 在 Eclipse 環境中,新建一個專案並新增 Hibernate 框架. 假設有兩個表,分別是 MainClass 和 SubClass ,下面是兩個表的表結構:(使用 MyS

自己--建立核心自信

一件事 而是 是不是 人才 自身 吃飯 世界 大量 做什麽   一六年的年底,從上海的公司辭職,打算回濟南發展。那時正值深冬,剛到濟南就下起了大雪,拖著行李箱走在街上,無可名狀的疲憊感湧上來。匆匆四年,也就那麽過來了。   分手後的很長一段時間,生活的很難。後來漸漸調

分享知識-快樂自己Hibernate對象的三種狀態

png delete rup load() ear 比較 lec alt 使用 圖解: 1):瞬時狀態(Transient)   對象與session沒有關聯,數據庫中沒有對應的數據。   一般new出來的對象便是瞬時對象。   對瞬時對象使用save()方法便使之成

分享知識-快樂自己Hibernate 中Criteria Query查詢詳解

limit all des 結合 project 實現簡單 result eager sele 1):Hibernate 中Criteria Query查詢詳解 當查詢數據時,人們往往需要設置查詢條件。在SQL或HQL語句中,查詢條件常常放在where子句中。 此外,Hib

02-建立Hibernate工程

Hibernate工程主要步驟 建立Hibernate的配置檔案 建立持久化類 建立物件-關係對映檔案 通過Hibernate API編寫訪問資料庫的程式碼 建立專案 開啟IntelliJ IDEA 選擇Java應用,勾選Web Ap

自動建立hibernate。配置檔案,對映,實體自動生成,日誌的配置

            建立db                   空白處ne

分享知識-快樂自己Hibernate物件的三種狀態

圖解:   1):瞬時狀態(Transient)   物件與session沒有關聯,資料庫中沒有對應的資料。   一般new出來的物件便是瞬時物件。   對瞬時物件使用save()方法便使之成為持久物件。   由於資料庫中沒有對應的資料,所以對瞬時物件使用update()方法無效。

分享知識-快樂自己Hibernate框架常用API詳解

1):Configuration配置物件 Configuration用於載入配置檔案。 1): 呼叫configure()方法,載入src下的hibernate.cfg.xml檔案     Configuration conf = new Configuration().configure(); 2)

分享知識-快樂自己Hibernate 中 get() 和 load()、sava、update、savaOrUpdate、merge,不同之處及執行原理?

1):Hibernate 中 get()  和 load() 有什麼不同之處? 1)Hibernate的 get方法,會確認一下該id對應的資料是否存在,首先在session快取中查詢,然後在快取中查詢,還沒有就查詢資料庫,資料庫中沒有就返回null。 2)Hibernate的 load方法載入

使用myeclipse建立hibernate逆向工程

之前使用myeclipse做java web開發,後來使用框架的時候就一直用IDEA+maven進行ssm的開發,所以對於myeclipseIDE做框架開發的騷操作不是很熟悉。今天就把這個過程做一下總結。 順便說一下(敲黑板了哈): Intellij IDEA真是個好東西!!當使用myecl

Intellij IDEA使用註解建立Hibernate專案中的OR對映類

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

自己建立的controller層的類,在前臺無法訪問,每次訪問總是提示404 NOTFOND

我遇到的這個問題很簡單,我的環境:mybatis+spring MVC。 (在eclipse中在頂部選單欄選中project-》build Automatically,如果你已經勾選了,但還是出錯,那下面的你就不用看了) 事情是這樣的:我建立的控制層的類在前臺通過url找不到它,按F12會提

ElasticSearch最佳入門實踐(六十四)索引管理_定製化自己的dynamic mapping

1、定製dynamic策略 true:遇到陌生欄位,就進行dynamic mapping false:遇到陌生欄位,就忽略 strict:遇到陌生欄位,就報錯 定製 PUT /my_index { "mappings": { "my_t

使用Eclipse建立hibernate 步驟

1、右鍵 New -->other(Ctrl+n), 如圖所示: 2、next 會進入到一個hibernate的檢視 進行資料庫的一些配置。如圖: 3、配置好後 finish 會進入到如下圖視窗:    3 選擇hibernate 然後open  

ubuntu 下 anaconda 自己建立env

conda create --name qigemingzi  python=3.6  #建立環境,python版本為3.6 source activate qigemingzi  #啟用環境 在相應環境下pip install 需要的包,-i 後面跟國內的源,

hibernate學習之在intellij idea下使用maven建立hibernate專案(詳細圖文教程)

在上次學習hibernate基礎瞭解之後,這裡再次進行intellij idea IDE使用maven進行hibernate的安裝,並跑通一個HelloWord。 環境 windows 7 64位 intellij idea maven hibernat

IDEA 手動建立 Hibernate 操作

  以Hibernate3.6的版本為例 一、檔案 ---> 專案結構--->模組 --->新增模組(點綠色的+)--->java模組 --->下一步 二、專案下要建立 config目錄(標記為源根 配置檔案) 和  lib目錄(jar包

pycharm中project使用Anaconda3中自己建立的python環境作為編譯器、pycharm執行程式時在Python console視窗中執行解決方法

我們以自己建立的tensorflow環境為例。 Anaconda中自己建立的環境都在這個資料夾內:C:\ProgramData\Anaconda3\envs 開啟pycharm,新建一個project,然後點選File->Settings->Project:[當前專案名稱]

建立Hibernate專案步驟

建立專案(java  project / dynamic web project)  新增需要的jar包 一、在專案上單擊右鍵,選擇New  ——》other    二、點選下面的Hibernation 建立hibernate.cfg.x

linux自動掛載自己建立的ext3分割槽

修改/etc/fstab vi /etc/fstab # Device Mount_point filesystem parameters dump fsck    //說明:裝置代號、掛載點、