利用Hibernate Tools生成與數據庫表對應的帶註解實體類

主要分三個階段。1.鏈接數據源;2.建立Hibernate配置文件;3.生成實體類。html

1、鏈接數據源

1.在Eclipse的菜單欄,選擇"Window"->"Show View"->"Other"->"Date Source Exploer"-"OK",將會顯示一個名爲"Date Source Exploer";java

2.在"Date Source Exploer"右擊「Database Connection"->"New",彈出一個窗口,選擇須要的數據庫;數據庫

3.接着新建一個數據庫驅動的配置。(1)選擇數據庫驅動類型(2)選擇數據庫驅動包的放置路徑(3)填寫鏈接地址、帳戶、密碼等鏈接數據庫所需用到的基本信息。session

4.填寫完後,會列出你先前填的信息。接着點擊"Test Connection",測試可否成功鏈接上數據庫。確認無誤,即可點擊"Finish"。「Database Connection"將會顯示 數據庫中的表。第一階段完成。app

2、建立Hibernate配置文件

1.在Eclipse的菜單欄,選擇"Window"->"Show View"->"Other"->"Hibernate Configurations"-"OK",將會顯示一個名爲"Hibernate Configurations"窗口;eclipse

2.在"Hibernate Configurations"窗口內右擊,選擇"Add Configuration",彈出"Edit Configuration"窗口;工具

3.在"Main"的tabpanel,填入須要導進的項目,選擇Annotation(jdk5.0+)單選圓框,選擇第一階段建立「Data Source」,接着建立hibernate.properties或hibernate.cfg.xml(強烈建議使用這個),二選一。若選建立hibernate.cfg.xml,接着並要求填寫相關鏈接數據庫須要用到的鏈接URL、帳戶、密碼、方言等。測試

4.在"Option"的tabpanel中選擇對應的方言。ui

5.在"Common"的tabpanel中選擇UTF-8字符集。spa

6.點擊"OK",在"Hibernate Configurations"窗口會顯示先前配置項。第二階段完成。

3、生成實體

1.在工具欄中,點擊帶Hibernate Logo 的"Run as"旁的三角,再點擊"Hibernate Code Geneartion Configurations",彈出窗口;

2.右擊"Hibernate Code Geneartion"->"New";

3.在窗口右側的"Main" tabpanel中,"Console Configuration"填寫第二階段建立的Hibernate配置,填寫實體類放置的文件夾位置,點擊"Reverse engineer from JDBC Connection」,"Package"位置變得可填(若是不填的話,生成的實體都是默認包,也就是說,實體.java的頭一行沒有"package *;"這一句。若是填了,放置位置會從新命名,還要加多一步手動地重命名包名。最後仍是選擇後者,也就是選擇填);

3.1(選擇)reveng.xml的做用,我理解爲更加細粒度地選擇表導出,選擇不填的的話,所有表都導出。

4.完成第3步後,點擊"Exporters"的tabpanel,點擊複選"Use Java 5 Syntax","Grnerate EJB3 annotaion",而後點擊下方的「Domain code(.java)」的複選, 方可點擊"Run";

5."讓子彈飛一下子---",接着在你指定的包看到工具生成實體類。第三階段完成。

 

PS:

1.在第三階段的第4步,遇到「reading schema error: null」異常,解決方法是在hibernate.cfg.xml的<hibernate-configuration>-><session-factory>添加

<property name="hibernate.default_schema"><!-- 你想生成實體的源schema名 --></property>

 

2.附上HibernateUtil(Hibernate3與Hibernate4的有所不一樣,應該與Hibernate4的策略有關)

public class HibernateUtil {
    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
        	
        	Configuration cfg = new Configuration().configure();
        	StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
        	                    .applySettings(cfg.getProperties()).build();
        	
            // Create the SessionFactory from hibernate.cfg.xml
            return cfg.buildSessionFactory(serviceRegistry);
        }
        catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
    	return sessionFactory;
    }
}

 

3.操做基本的CRUD的方法模板

@Test
public void doData(){
    Session session = HibernateUtil.getSessionFactory().openSession();
    session.beginTransaction();
    try{
        //相關數據庫操做
        //session.saveOrUpdate(m);
        	
        session.getTransaction().commit();
    }catch(Exception e){
        session.getTransaction().rollback();
        e.printStackTrace();
    }finally{
        if(session != null)
            session.close();
    }
}

 

參考文獻

1.eclipse從數據庫逆向生成Hibernate實體類-http://blog.csdn.net/wangpeng047/article/details/6877720

2.Eclipse從數據庫逆向生成Hibernate帶註解的實體類-http://www.2cto.com/database/201501/372023.html

3.reading schema error: null,readingschema-http://www.bkjia.com/sjkqy/995143.html

4.hibernate4.3.4.final出現的一個問題-http://bbs.csdn.net/topics/390746425

相關文章
相關標籤/搜索