Hibernate簡介:
???? Hibernate是一個開放源代碼的對象關系映射框架城菊,它對JDBC進行了非常輕量級的對象封裝硫眨,它將POJO與數(shù)據(jù)庫表建立映射關系朦佩,是一個全自動的orm框架冯遂,hibernate可以自動生成SQL語句拟枚,自動執(zhí)行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫吼渡。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用乓序,也可以在Servlet/JSP的Web應用中使用寺酪,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數(shù)據(jù)持久化的重任替劈。(百度百科)
????? 相信看完第一段的小白心里就會有個疑問,啥是ORM,一起介紹了吧
????? ORM:
???????? (Object Relation Mapping)翻譯成中文就是:對象關系映射簡稱ORM,這是一種程序技術,用于實現(xiàn)面向?qū)ο缶幊陶Z言里不同類型系統(tǒng)的數(shù)據(jù)轉換.
Hibernate開發(fā)包介紹
? 下載網(wǎng)址:https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/
下載好后解壓:
Hibernate中的子目錄進行簡單的介紹.
???? documentation 文件夾:存放Hibernate的相關文檔,包括參考文檔的API文檔
???? lib 文件夾:存放Hibernate編譯和運行所依賴的JAR包.其中erquired子目錄下包含了運行Hibernate項目必須得jar包
??? project 文件夾:存放了Hibernate各種相關的源代碼.
保存數(shù)據(jù)到數(shù)據(jù)庫中
?? 1.創(chuàng)建數(shù)據(jù)庫:(這里用的是mysql)
?????? create database hibernate; //創(chuàng)建數(shù)據(jù)庫
?????? use hibernate;//選中數(shù)據(jù)庫
? ?? CREATE TABLE `user` (
????????? ? `id` BIGINT(32) NOT NULL AUTO_INCREMENT
????????????? `username` VARCHAR(32) NOT NULL
???????????? `passuserword` VARCHAR(32) DEFAULT NULL
????????????? PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2.創(chuàng)建項目: 導入hibernate必須得jar包:
??????????? 數(shù)據(jù)庫驅(qū)動包:
??????????
? ? ? ? ? ? ? Hibernate必須得jar包位置在hibernate-release-5.0.7.Final\lib\required中
? 3.創(chuàng)建持久化類
? ? ? ? 持久化類是業(yè)務實體類,這里的持久化是指類的對象能夠被持久化保存到數(shù)據(jù)庫中.Hibernate使用普通java對象,(Plain Old java Object),即POJO的編程模式來進行持久化.(說白了就是寫個類,里面寫上屬性,給屬性提供get和set方法)
? 4.編寫映射配置文件:
????? 實體類還不具備赤計劃操作的能力,Hibernate需要知道實體類映射到數(shù)據(jù)庫中的那個表,以及類中的哪個屬性對應數(shù)據(jù)庫中的哪個字段,這些就需要在映射中的配置.
????? 編寫映射文件:
??????? 格式:xml
??????? 名稱:隨意? 建議格式:類名.hbm.xml
??????? 路徑:隨意? 建議跟實體類放在一起
??????? 導入約束:dtd約束
???????? 位置:在Hibernate的核心jar包中名字為hibernate-mapping-3.0.dtd.如下圖.(暫時找不到或者不想找就手抄吧)
??
下面是配置文件具體的內(nèi)容:
5.映射文件有了,該編寫主配置文件了
???? Hibernate的配置文件主要是用來配置數(shù)據(jù)庫連接以及Hibernate運行時所需要的各個屬性的值的.
? ? ? 編寫映射文件:
?? ? ? 格式:xml或properties都行
?????? 名稱:隨意? 建議格式:類名.cfg.xml
?????? 路徑:隨意? 建議放在src
?????? 導入約束:dtd約束
? ? ? ? 位置:在Hibernate的核心jar包中名字為hibernate-configuration-3.0.dtd.如下圖.(暫時找不到或者不想找就手抄吧)
下面是主配置文件具體的介紹:
測試一下:
? Hbernate中的API
??????? Configuration對象
??????????????? Configuration主要是用于啟動,加載,管理Hibernate的配置文件的.啟動Hibernate的時候,Configuration就會先找到Hibernate配置文件的位置,然后讀取他,在創(chuàng)建一個唯一的SessionFactory實例.
?????? Configuration加載核心配置文件的三種方法:
1.1:new Configuration():會自動加載src目錄下的名稱為? hibernate.properties
1.2:new Configuration().configure():會自動加載src目錄下的名稱為 hibernate.cfg.xml(一般情況都使用這一種)
1.3:new Configuration().configure("config/h.c.xml"):會加載src目錄下config目錄下的 h.c.xml
2:創(chuàng)建SessionFactory
BuildSessionFactory();
3:加載映射文件
?addResource("映射文件位置");
SessionFactory
??? SessionFactory是負責Hibernate的初始化建立Session對象的.
?? Session:
?????? 常用方法:
??????????????? save(Object);???????????? 保存一個實體到數(shù)據(jù)庫
??????????????? update(Object);???????? 更新一個實體
??????????????? delete(Object);????????? 刪除一個實體
??????????????? get(Class clazz,Serializable id);??? 根據(jù)id查詢一個實體
??????????????? beginTransaction();????????? 開啟視圖,并返回事務對象