# Hibernate專案建置(java專案) Hibernate是一個開放原始碼的對象關係映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與資料庫表建立映射關係,是一個全自動的ORM框架。 ORM:Object-Relational MApping:將關聯式資料庫的資料對應到物件導向程式語言的物件的技術。 其中: * 1個Table對應個Table對應1個Java類別。 * 1個Column對應1個Java屬性:Column資料的資料庫型別對應屬性的Java型別。 * 1個Row對應到1個Java物件:產生一個物件,將1個Row的資料塞入對應的Java屬性。 ![](https://i.imgur.com/6iTMCvp.png) ![](https://i.imgur.com/oad0VsB.png) 其中:Domain Object 為資料庫資料所對應的class稱為Domain Object。 ![](https://i.imgur.com/dPTLeiw.png) ![](https://i.imgur.com/6BHar5T.png) ![](https://i.imgur.com/kAl7KeX.png) **第一步:** 在pom.xml檔中引入「Hibernate」以及「ojdbc」函式庫。 **第二步:** 產生Hibernate主要設定檔(Hibernate Configuration File) * Hibernate Configuration File檔名通常是<font color="#f00">hibernate.cfg.xml</font>,通常放在<font color="#f00">classpath root</font> * class root:放置java類別的位置,而且沒有套件。 * Maven專案的classpath root是指/srcmain/resources目錄,eclipse的Maven專案預設沒有/src/main/resources目錄,必須手動產生。 * 專案名稱 => New => Folder * 畫面中間樹狀結構 => 專案名稱 => src => main * Folder name:輸入<font color="#f00">resources</font> * Finish ![](https://i.imgur.com/wFHmNgv.png) ![](https://i.imgur.com/jVTT5FC.png) **第三步:** * 修改hibernate.cfg.xml中的標籤為: <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property> 其中oracleDriver代碼可從dependency引入的ojdbc8中下載的jar檔中複製 ![](https://i.imgur.com/fzL69XQ.png) * 修改標籤為:(參考[https://www.itread01.com/content/1546528863.html](https://))格式二之寫法: <property name="hibernate.connection.url">jdbc:oracle:thin:@//localhost:1521/XE</property> ![](https://i.imgur.com/rVPb2eF.png) **第四步:** 產生Persistent Class對應資料庫Table (Domain Object) ![](https://i.imgur.com/a29yNHE.png) **第五步:** 產生Persistent Class與資料庫Table之間對應的相關設定(使用annotation或xml設定)此處需要加入三個annotation,須注意使用之Entity和Table必須為javax之套件!!! 例如: ![](https://i.imgur.com/Hqu1J7o.png) ![](https://i.imgur.com/ma7zeY1.png) ![](https://i.imgur.com/qMO4Xpt.png) ![](https://i.imgur.com/5fEsZkB.png) **第六步:** 修改Hibernate主要設定檔(hibernate.cfg.xml.xml)加入Persistent Class名稱,必須讓Hibernate知道我們有使用annotation,例如: ![](https://i.imgur.com/OGEMx2F.png) ![](https://i.imgur.com/fLpZqPZ.png) **第七步:** 撰寫Hibernate程式對資料庫Table做動作 ![](https://i.imgur.com/tgEnI6l.png) 加入以下程式碼: ![](https://i.imgur.com/sd57gTA.png) ![](https://i.imgur.com/bAS7xaJ.png) ![](https://i.imgur.com/eC0Dn5g.png) **第八步** 建立測試程式: ![](https://i.imgur.com/zp1xTir.png)