Hibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,它將POJO與數(shù)據(jù)庫表建立映射關(guān)系,是一個(gè)全自動(dòng)的orm框架,hibernate可以自動(dòng)生成SQL語句,自動(dòng)執(zhí)行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在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包的說明。Hibernate包以源代碼或者二進(jìn)制的形式提供。
hibernate 簡介:
hibernate是一個(gè)開源框架,它是對象關(guān)聯(lián)關(guān)系映射的框架,它對JDBC做了輕量級的封裝,而我們java程序員可以使用面向?qū)ο蟮乃枷雭聿倏v數(shù)據(jù)庫。
hibernate核心接口
session:負(fù)責(zé)被持久化對象CRUD操作
sessionFactory:負(fù)責(zé)初始化hibernate,創(chuàng)建session對象
configuration:負(fù)責(zé)配置并啟動(dòng)hibernate,創(chuàng)建SessionFactory
Transaction:負(fù)責(zé)事物相關(guān)的操作
Query和Criteria接口:負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢
編程工具
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.通過Configuration config = new Configuration().configure();//讀取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的《mapping resource=“com/xx/User.hbm.xml”/》讀取并解析映射信息
3.通過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. 對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。
2. Hibernate是一個(gè)基于JDBC的主流持久化框架,是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn)。他很大程度的簡化DAO層的編碼工作
3. hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。
4. hibernate的性能非常好,因?yàn)樗莻€(gè)輕量級框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。
評論