標籤:
以前都是通過Hibernate + MySQL 來實現資料庫查詢與修改的,因為 mysql 資料庫 較oracle資料庫簡單些,最近在看Oracle的書籍,今下午嘗試了下Hibernate 架構下操作Oracle資料庫:
1.建立 WEB Project 項目 “OracleTest”;
2.匯入Hibernate 架構;
3. 在MyEclipse 中 建立 Oracle 某個資料庫的串連
(Windos -- Show View -- DB Browser )調出 DB Browser 功能;
空白處,右鍵,單擊 “New” ,開始建立 串連項
給串連項 起一個好記且有意義的名字,例如:oracle_hello (串連 oracle 的 hello 資料庫)
選擇 Oracle (OCI Driver)或者 Oracle (Thin Driver)均可,(OCI 需要本地安裝Oracle 用戶端,所以一般用Thin Driver即可);
按照模板填好 Connection URL ,例如:jdbc:oracle:[email protected]:1521:hello;
填好 User name ,這裡為 system;
填好 Pasword ;
然後點擊“Add JARs” 選擇好本地的 Oracle 的jdbc 的驅動包;
Driver classname 選擇 “oracle.jdbc.driver.OracleDriver”;
填好上述資訊後,單擊“Test Driver” 測試一下所填資訊是否正確,如果正確,一切OK;否則,仔細看看上述資訊有沒有錯誤;
4. 建好串連項後,可以開啟串連項,選擇好要匯入的表,然後右鍵,點擊“Hibernate Reverse Engineering” 即可將映射資訊匯入到項目中
(選擇 Id Generator 時 ,一般選擇 assigned,想要自動成長而不用專門去資料庫查詢,可以選擇increment選項);
通過java訪問資料庫,查詢並儲存資訊;
有一點需要特別注意,雖然Hibernate 架構可以自動產生對應檔和資料庫連接檔案,但是由於Oracle的特殊性,Hiberntate產生的實體類檔案中的欄位的類型不一定合適:
例如:筆者資料庫裡的id欄位是NUMBER類型,Hibernate會自動對應成BigDecimal,BigDecimal類型的資料不能像int類型那樣簡單進行+-*/,而是需要調用特殊方法才可以,所有筆者將實體類檔案裡的BigDecimal 類型改成了 int 類型,注意將getter 和 setter 方法中的BigDecimal 也改成int,特別注意:將實體與表對應檔中的BigDecimal也改成int 類型;
做好上述工作後,就可以調用Dao檔案裡的方法訪問資料庫了
(MyEclipse 2014 prefessional 版本中的Hibernate架構自動產生的Dao 檔案裡的 save 和 delete 方法需要添加交易處理功能,否則無效,如所示)
5.做完上述工作後,就可以建立測試類別,進行測試了,完美:
Hibernate + Oracle 結合