在項目設計時,要麼根據需求分析創建實體類,而後正向生成數據庫表;要麼先進行數據庫表設計,而後逆向生成實體類。也就是說,不會完成一方的設計後再花時間去匹配創建另外一方,這麼作的緣由是:java
一、若是不使用正向或逆向工程,則會是1.5倍的工做量,浪費時間數據庫
二、沒法保證兩邊的映射一致。由於兩邊都是本身設計的,就須要人爲地保證映射關係的統一,這樣會留下隱患安全
三、開發、維護上都不利,由於若是任意一方因爲某些緣由須要修改,那麼常常兩邊都要修改,這樣的話映射不一致的可能性不只會更大,並且效率地下app
在eclipse中鏈接數據庫dom
雖然eclipse自帶了數據庫管理器(Data Management),但這裏我使用的是插件DBViewer,將該插件下載後放到plugins目錄下,重啓eclipse,點擊Window-Show View-Other-DBViewer Plugin-DB Tree View,以下:eclipse
右鍵DBViewerPlugin-Add,以下:測試
在"DataBase Define Name"中爲要鏈接的數據庫取一個名字,點擊JDBC Driver下的Add File選項添加鏈接數據庫的jar包,點擊Next,以下:ui
填寫好數據庫配置信息,點擊Test connection測試是否鏈接上數據庫,以下:hibernate
點擊Finish即完成數據庫鏈接,以下:插件
下載並安裝hibernate tools插件
選擇Help-Eclipse Marketplace,在搜索框中輸入JBoss Tools,點擊JBoss Tools 4.1.2 Fianl中的Install選項,以下:
這裏咱們只須要Hibernate Tools,所以只用勾選此選項,點擊Confirm,以下:
安裝過程當中會彈出兩個提示框,一個是提示證書安全,另外一個是提示要重啓eclipse,咱們都點擊肯定便可。
開發hibernate項目
1.自動生成hibernate.cfg.xml文件
首先建立一個java項目,並導入hibernate包(能夠新建一個lib文件夾,將hibernate必須的jar包以及數據庫鏈接的jar包放置到該文件夾下,而後右鍵-Add To Build Path)。
右鍵項目-New-other,新建一個hibernate.cfg.xml文件,以下:
因爲咱們前面已經在eclipse中鏈接了數據庫,所以配置hibernate.cfg.xml文件時,能夠點擊"Get values from Connection"來讀取前面配置的數據庫鏈接信息,以下:
以後選擇數據庫方言(Database dialect),點擊Finish便可。在src目錄下會看到自動生成的hibernate.cfg.xml文件,以下:
2.添加hibernate控制檯配置
右鍵項目-New-other,搜索hibernate,選擇Hibernate Console Configuration,點擊Next,以下:
在Name中指定該hibernate console configuration的名稱,在Project中選擇項目,在Database Connection中選擇前面配置的數據庫鏈接,在Configuration file中選擇前面自動生成的hibernate.cfg.xml文件,點擊Finish,以下:
3.自動生成hibernate.reveng.xml文件
右鍵項目-New-other,搜索hibernate,選擇Hibernate Reverse Engineering File,點擊Next,以下:
在Console configuration中選擇上一步配置的名字(即hibernate console configuration中輸入的Name),點擊Refresh刷新出前面鏈接的數據庫中的所有Schema,點擊Include會將指定的數據庫或表添加到Table filters中,這裏咱們不過濾任何表,以下:
點擊Finish,在項目下會有一個hibernate.reveng.xml文件,打開該文件,點擊Table&Columns標籤頁,點擊Add,選擇剛纔配置的hibernate console configuration的名稱,點擊OK,選擇要映射的表,以下:
4.自動生成*.hbm.xml文件
點擊Run-Hibernate Code Generation-Hibernate Code Genration Configurations,以下:
Main標籤頁中,在Console configuration中選擇前面的hibernate console configuration中配置的名稱,在Output directory中選擇自動生成的domain類放置的位置,這裏咱們須要事先在src目錄下建一個包(com.kevin.domain)用來存放domain類,勾選Reverse engineer from JDBC Connection,在reveng.xml中選擇剛纔自動生成的hibernate.reveng.xml文件,以下:
Exporters標籤頁中,勾選Domain code(.java)和Hibernate XML Mappings(.hbm.xml),以下:
點擊Run,在指定目錄下就能夠看到自動生成的domain類和*.hbm.xml文件了,以下:
注:
一、有錯誤是由於domain類中沒有指定包位置,打開Employee.java文件,添加包位置便可(如package com.kevin.domain;)
二、因爲此時沒有自動更新hibernate.cfg.xml文件,所以咱們須要手動在其中添加須要管理的對象關係映射文件,以下:
三、打開Employee.hbm.xml文件,會發現其中沒有指定要映射的domain類的位置,所以咱們須要手動加上,即package="com.kevin.domain",以下:
四、Employee.hbm.xml文件中的type屬性值能夠是java類型的(好比java.lang.String),也能夠是hibernate類型的(好比string),通常使用java類型。