資源描述:
《Hibernate常用API詳解及源碼分析》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、新接觸一個框架的目的就是想利用這個框架來為我們做一些工作,或者是讓他來簡化我們的工作,利用這個框架無非就是要利用這個框架所給我們提供的API去操作我們的數(shù)據(jù),所以利用一個框架的好壞很大一部分取決于你對這個框架API的理解程度,所以在此篇博客中我們就一起來看一下Hibernate?的API和配置文件的相信情況。下面我們一一來看一下:一:使用SchemaExport自動創(chuàng)建數(shù)據(jù)庫表????????我相信在此之前大家應(yīng)該都是用最原始的方法:SQL建立數(shù)據(jù)庫相關(guān)的表,然后再Java寫映射寫配置文件.現(xiàn)在我們學(xué)習(xí)了hibernate以
2、后就可以用一些偷懶的方式了,我們可以使用SchemaExport自動創(chuàng)建數(shù)據(jù)庫,建立根據(jù)你的對象建立數(shù)據(jù)庫表。下面我們來看一下具體操作:首先當(dāng)然要建好POJO?object,?XML?Mapping?File(也可以使用工具根據(jù)POJO?class建立),配置文件(hibernate.cfg.xml),然后運行下面的Java代碼1.import?org.hibernate.cfg.Configuration;???2.??3.import?org.hibernate.tool.hbm2ddl.SchemaExport;??4
3、.??5.??6.public?class?SchemaUtil?{??7.????public?static?void?main(String[]?args)?{??8.??9.????????Configuration?cfg?=?new?Configuration().configure();??10.??11.????????SchemaExport?schemaExport=?new?SchemaExport(cfg);??12.??13.????????schemaExport.create(false,?tru
4、e);??14.??家用吸氧機價格http://www.qingyangblog.com1.????}??2.}??再看看數(shù)據(jù)庫,表是不是已經(jīng)幫你建好了,對于我這樣不熟悉數(shù)據(jù)庫的人真是太方便了。?二.使用Hibernate操作數(shù)據(jù)庫需要七個步驟(1)讀取并解析配置文件Configuration?conf?=?new?Configuration().configure();(2)讀取并解析映射信息,創(chuàng)建SessionFactorySessionFactory?sf?=?conf.buildSessionFactory();(3
5、)打開SessionSession?session?=?sf.openSession();(4)開始一個事務(wù)(增刪改操作必須,查詢操作可選)Transaction?tx?=?session.beginTransaction();(5)數(shù)據(jù)庫操作session.save(user);//或其它操作(6)提交事務(wù)(回滾事務(wù))tx.commit();(tx.rollback();)(7)關(guān)閉sessionsession.close();下面我們來詳細看一下這七大步驟的API:Configuration:負責(zé)管理Hibernate的
6、配置信息,這些配置信息都是從配置文件hibernate.cfg.xml或者Hibernate.properties讀取的,當(dāng)然也可以自定義文件名稱,只要在實例化Configuration的時候指定具體的路徑就家用吸氧機價格http://www.qingyangblog.com可以了;他為什么會自動加載hibernate.cfg.xml文件的呢?我們看一下configure源碼就一目了然了1.public?Configuration?configure()?throws?HibernateException?{??2.??3.
7、configure(?"/hibernate.cfg.xml"?);??4.??5.return?this;??6.??7.}??從這里我們可以看出,在hibernate源碼中,他就是默認的加載hibernate.cfg.xml,當(dāng)然你也可以指定加載配置文件,Configuration提供了相應(yīng)的方法:?public?Configuration?configure(String?resource)public?Configuration?configure(URL?url)public?Configuration?confi
8、gure(File?configFile)?SessionFactiory:Configuration的實例會根據(jù)當(dāng)前的配置信息,構(gòu)造SessionFactory實例。SessionFactory是線程安全的,一般情況下一個應(yīng)用中一個數(shù)據(jù)庫共享一個SessionFactory實例。?Hib