環境
MySQL 5.1 + Hibernate 3.2 + MyEclipse 8.6
問題
Hibernate逆向工程
解決
第一步 建立資料庫
--建立資料庫create database hibernate default charset utf8;--建立表create table TbUser(id int(11) primary key auto_increment,name varchar(20) not null,password varchar(11) not null,sex varchar(2) null);
第二步 建立一個Java工程,取名為HibernateTest
點擊Next >,在新的對話方塊當中,建立一個新的Source Folder,取名為src,最後點擊Finish(這步可忽略)
第三步 設定資料庫
1. 點擊Window-------->show view-------->other,在彈出的對話方塊當中,選擇MyEclipse Database分支下的DB
Browser,如所示:
2. 最後,點擊OK,在工作空間上將會出現一個DB Browser的配置頁面,在配置頁面空白處,右鍵,選擇New按鈕
3. 在彈出的對話方塊當中設定資料庫串連。在配置頁面上,選擇資料庫類型,輸入資料庫配置名稱,輸入資料庫使用者名稱密碼,匯入Mysql JDBC Driver即可。
4. 然後選擇Next,選擇“Display All schemas”。接著,點擊Finish按鈕,完成了資料庫的配置。
5. 最後,使用DB Browser串連到資料庫,如所示
第四步 初始化Hibernate開發環境
1. 在工程上右鍵,選擇MyEclipse-->Add Hibernate Capabilities
2. 將彈出Hibernate的配置視窗,如所示:
3. 點擊Next>按鈕,建立一個新的Hibernate設定檔,如所示:
4. 點擊Next>,設定資料庫的資訊,在DB Driver當中選擇剛剛定義的資料庫連接配置,MyEclipse將自動填滿相應的配置資訊值,包括JDBCDriver,URL,UserName,Password及Dialect,如所示:
5. 點擊Next>按鈕,在新的對話方塊當中點擊Java package所在行的New按鈕,該功能是定義HibernateSessionFactory所在的路徑。如所示
6. 在彈出的New Java Package對話方塊當中,在Name項輸入com.test,或者你自己喜歡的包名,之後點擊Finish按鈕。
7. 最後,點擊Finish按鈕。
8. 新的工程目錄結構如所示:
9. 我們可以看到,系統自動給我們產生了HibernateSessionFactory.java及Hibernate.cfg.xml設定檔,並將Hibernate環境所需要的外部包檔案也加入到CLASSPATH當中。
第五步 通過反向工程,產生POJO及hbm對應檔:
1. 在DB Browser配置介面,入進hibernate資料庫,如所示:
2. 點擊t_user,在鍵,選擇Hibernate Reverse Engineering,如所示:
3. 將彈出如下的對話方塊,在Java package當中輸入產生的hibernate映射的JavaBean為com.test,詳細請參考
4. 點擊Next>按鈕,在新的對話方塊當中,在ID Generator的選項當中選擇increment,表示ID為資料庫自增長類型
5. 點擊Next>,可以修改類名或列名。
6. 最後,點擊Finish按鈕。新的目錄結構如所示:
第六步 編寫測試例子
package com.test;import org.hibernate.Session;import org.hibernate.Transaction;public class TestHibernate {/** * @param args */public static void main(String[] args) {Session session = HibernateSessionFactory.getSession(); Transaction tx = session.beginTransaction(); Tbuser user = new Tbuser("123", "123", "1"); try { session.save(user); tx.commit(); } catch (Exception e) { tx.rollback(); e.printStackTrace(); }finally{ session.close(); } }}
樣本效果如:
|
|
| @Wentasy 博文僅供參考,歡迎大家來訪。如有錯誤之處,希望批評指正。原創博文如需轉載請註明出處,謝謝 [CSDN部落格] |