主要分三個階段。1.鏈接數據源;2.建立Hibernate配置文件;3.生成實體類。html
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
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"窗口會顯示先前配置項。第二階段完成。
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