Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它將POJO與數(shù)據(jù)庫(kù)表建立映射關(guān)系,是一個(gè)全自動(dòng)的orm框架,hibernate可以自動(dòng)生成SQL語(yǔ)句,自動(dòng)執(zhí)行,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。
Hibernate是一個(gè)以LGPL(Lesser GNU Public License)許可證形式發(fā)布的開源項(xiàng)目。在Hibernate官網(wǎng)上有下載Hibernate包的說(shuō)明。Hibernate包以源代碼或者二進(jìn)制的形式提供。
hibernate 簡(jiǎn)介:
hibernate是一個(gè)開源框架,它是對(duì)象關(guān)聯(lián)關(guān)系映射的框架,它對(duì)JDBC做了輕量級(jí)的封裝,而我們java程序員可以使用面向?qū)ο蟮乃枷雭?lái)操縱數(shù)據(jù)庫(kù)。
hibernate核心接口
session:負(fù)責(zé)被持久化對(duì)象CRUD操作
sessionFactory:負(fù)責(zé)初始化hibernate,創(chuàng)建session對(duì)象
configuration:負(fù)責(zé)配置并啟動(dòng)hibernate,創(chuàng)建SessionFactory
Transaction:負(fù)責(zé)事物相關(guān)的操作
Query和Criteria接口:負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢
編程工具
Eclipse:一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。
NetBeans:開放源碼的Java集成開發(fā)環(huán)境,適用于各種客戶機(jī)和Web應(yīng)用。
IntelliJ IDEA:在代碼自動(dòng)提示、代碼分析等方面的具有很好的功能。
MyEclipse:由Genuitec公司開發(fā)的一款商業(yè)化軟件,是應(yīng)用比較廣泛的Java應(yīng)用程序集成開發(fā)環(huán)境。
EditPlus:如果正確配置Java的編譯器“Javac”以及解釋器“Java”后,可直接使用EditPlus編譯執(zhí)行Java程序。
hibernate工作原理:
1.通過(guò)Configuration config = new Configuration().configure();//讀取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的《mapping resource=“com/xx/User.hbm.xml”/》讀取并解析映射信息
3.通過(guò)SessionFactory sf = config.buildSessionFactory();//創(chuàng)建SessionFactory
4.Session session = sf.openSession();//打開Sesssion
5.Transaction tx = session.beginTransaction();//創(chuàng)建并啟動(dòng)事務(wù)Transation
6.persistent operate操作數(shù)據(jù),持久化操作
7.tx.commit();//提交事務(wù)
8.關(guān)閉Session
9.關(guān)閉SesstionFactory
為什么要用hibernate:
1. 對(duì)JDBC訪問(wèn)數(shù)據(jù)庫(kù)的代碼做了封裝,大大簡(jiǎn)化了數(shù)據(jù)訪問(wèn)層繁瑣的重復(fù)性代碼。
2. Hibernate是一個(gè)基于JDBC的主流持久化框架,是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn)。他很大程度的簡(jiǎn)化DAO層的編碼工作
3. hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來(lái)實(shí)現(xiàn)透明性。
4. hibernate的性能非常好,因?yàn)樗莻€(gè)輕量級(jí)框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫(kù),從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系。
評(píng)論
查看更多