版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章 Hibernate持久(chji)層技術(shù)共五十頁(yè)教學(xué)內(nèi)容案例Java 持久化對(duì)象(duxing)Hibernate 概述Hibernate 映射關(guān)系HQL查詢語(yǔ)言共五十頁(yè)5.1 案例(n l)案例(n l)Hibernate關(guān)系數(shù)據(jù)庫(kù)Customer類CustomerService類對(duì)象關(guān)系型映射Hibernate APIHibernate 配置文件customers表共五十頁(yè)一個(gè)(y )語(yǔ)言轉(zhuǎn)換工具,Hibernate利用它實(shí)現(xiàn) HQL 到 SQL 的轉(zhuǎn)換collections Apache 的工具集,用來增強(qiáng)(zngqing)Java對(duì)集合的處理能力dom4j XML 解析器核心包
2、代碼生成工具, Hibernate用它在運(yùn)行時(shí)擴(kuò)展 Java類標(biāo)準(zhǔn)的 JAVA 事務(wù)處理接口hibernate使用的一個(gè)日志系統(tǒng)所用Jar包及說明5.1 案例共五十頁(yè)5.1 案例(n l)創(chuàng)建(chungjin)表和對(duì)應(yīng)的javaBean 文件create table customer( id int primary key, name varchar(12), age int, des text)public class Customer private Integer id; private String name; private Integer age; private String
3、des;共五十頁(yè)5.1 案例(n l)創(chuàng)建 Customer.hbm.xml 文件(擴(kuò)展名 .hbm.xml) Hibernate 采用 XML 格式的文件來指定對(duì)象和關(guān)系數(shù)據(jù)之間的映射. 在運(yùn)行時(shí) Hibernate 將根據(jù)(gnj)這個(gè)映射文件來生成各種 SQL 語(yǔ)句共五十頁(yè)指定持久(chji)化類的OID 和表的主鍵的映射映射(yngsh)類的屬性和表的字段指定對(duì)象標(biāo)識(shí)符生成器, 負(fù)責(zé)為 OID 生成唯一標(biāo)識(shí)符指定類和表的映射共五十頁(yè)5.1 案例(n l)property元素:設(shè)定持久化類的屬性(shxng)和表字段映射name屬性:指定持久化類的屬性的名字column屬性:指定表中字段
4、的名稱type屬性指定Hibernate映射類型 Hibernate映射類型是java類型與SQL類型的橋梁注: 該映射文件的規(guī)范在 org.hibernate. hibernate-mapping-3.0.dtd 文件中共五十頁(yè)5.1 案例(n l)java、hibernate、sql類型對(duì)應(yīng)(duyng)關(guān)系SQL類型Java類型Hibernate類型VARCHARStringstringINTInteger/intintCHARCharacter/charcharacterBITBoolean/booleanbooleanTEXTStringtextBLOBbytebinaryDATEj
5、ava.sql.DatedateTIMESTAMPjava.sql.Timestamptimestamp共五十頁(yè)5.2 Java 持久(chji)化對(duì)象軟件模型用于描述業(yè)務(wù)系統(tǒng)涉及的真實(shí)實(shí)體。在軟件開發(fā)的不同階段需要建立(jinl)不同的模型:分析階段:概念模型設(shè)計(jì)階段:域模型、關(guān)系數(shù)據(jù)模型各種模型之間存在轉(zhuǎn)換關(guān)系:概念模型域模型(面向?qū)ο?關(guān)系數(shù)據(jù)模型(面向關(guān)系)分析階段設(shè)計(jì)階段對(duì)象關(guān)系映射共五十頁(yè)5.2 Java 持久(chji)化對(duì)象概念模型概念模型用來(yn li)模擬問題域中的真實(shí)實(shí)體。概念模型描述每個(gè)實(shí)體的概念及屬性,以及實(shí)體之間的關(guān)系。概念模型并不描述實(shí)體的行為。技術(shù)人員還是非技
6、術(shù)人員他們都能夠看得懂概念模型,也可以很容易的提出模型中的問題,及早發(fā)現(xiàn)以幫助系統(tǒng)分析人員修改問題。共五十頁(yè)5.2 Java 持久(chji)化對(duì)象關(guān)系模型關(guān)系數(shù)據(jù)模型建立在概念模型的基礎(chǔ)之上,它是用于描述關(guān)系數(shù)據(jù)的靜態(tài)結(jié)構(gòu)它由數(shù)據(jù)表以及數(shù)據(jù)表之間的參照完整性,視圖,索引,觸發(fā)器組成數(shù)據(jù)表中用主鍵來標(biāo)識(shí)和區(qū)分記錄關(guān)系表中作為主鍵的字段應(yīng)當(dāng)滿足:不充許為空每條記錄擁有唯一值,表中不充許重復(fù)(chngf)每條記錄的主鍵值永遠(yuǎn)不可改變關(guān)系表中應(yīng)當(dāng)盡量使用代理主鍵共五十頁(yè)5.2 Java 持久(chji)化對(duì)象關(guān)系模型-表與表的參照完整性在概念模型中需要建立實(shí)體與實(shí)體之間的關(guān)系而在數(shù)據(jù)模型中需要建立關(guān)
7、系數(shù)據(jù)之間的參照完整性關(guān)系示例:?jiǎn)T工(yungng)和部門,訂單與產(chǎn)品員工與部門之間的一對(duì)多訂單與產(chǎn)品的多對(duì)多關(guān)系共五十頁(yè)5.2 Java 持久(chji)化對(duì)象域?qū)ο?業(yè)務(wù)(yw)系統(tǒng)中域?qū)ο蟾鶕?jù)用途可分為:實(shí)體域?qū)ο?、過程域?qū)ο?、事件域?qū)ο髮?shí)體域?qū)ο髮?shí)體可以代表人,地點(diǎn),事物或概念Java中用包含屬性的JavaBean表示每個(gè)實(shí)體域?qū)ο笈c關(guān)系數(shù)據(jù)庫(kù)中一條記錄對(duì)應(yīng),為了區(qū)分實(shí)體域?qū)ο螅總€(gè)實(shí)體域?qū)ο蠖?有一個(gè)唯一的OID,OID的值對(duì)應(yīng)記錄的主鍵概念模型的實(shí)體一般需要轉(zhuǎn)換成實(shí)體域?qū)ο蠊参迨?yè)5.2 Java 持久(chji)化對(duì)象持久(chji)化的操作主要包括:保存:把域?qū)ο蟊4娴綌?shù)據(jù)庫(kù)中
8、。更新:更新數(shù)據(jù)庫(kù)中域?qū)ο蟮臓顟B(tài)數(shù)據(jù)。刪除:從數(shù)據(jù)庫(kù)中刪除一個(gè)域?qū)ο蟆<虞d:根據(jù)一個(gè)特定的OID,將對(duì)應(yīng)的域?qū)ο髲臄?shù)據(jù)庫(kù)中加載到內(nèi)存。查詢:根據(jù)特定的條件,把一個(gè)或多個(gè)域?qū)ο蠹虞d到內(nèi)存中。共五十頁(yè)5.2 Java 持久(chji)化對(duì)象通用的Java應(yīng)用一般使用JDBC來實(shí)現(xiàn)域?qū)ο蟮某志没褂肑DBC操作數(shù)據(jù)庫(kù)具有一些缺餡:業(yè)務(wù)邏輯的代碼和數(shù)據(jù)庫(kù)訪問代碼摻雜在一起,使程序結(jié)構(gòu)不清晰,可讀性差。程序代碼中應(yīng)用了SQL語(yǔ)句,使開發(fā)人員無法以完全面向?qū)ο蟮乃季S來編寫程序。業(yè)務(wù)邏輯和關(guān)系數(shù)據(jù)模型綁定,如果關(guān)系模型發(fā)生了變化,必須手工修改程序代碼中所有(suyu)相關(guān)的SQL語(yǔ)句,增加了軟件的維護(hù)難度
9、。如果程序代碼中的包含 SQL的語(yǔ)法錯(cuò)誤,在編譯階段無法檢查出這種錯(cuò)誤,只有在運(yùn)行時(shí)才能發(fā)現(xiàn),這增加了調(diào)試難度。共五十頁(yè)5.2 Java 持久(chji)化對(duì)象ORM模式ORM(Object Relation Mapping)簡(jiǎn)稱對(duì)象關(guān)系映射ORM通過特定的配置文件定義域?qū)ο笈c關(guān)系數(shù)據(jù)庫(kù)之間的關(guān)系來實(shí)現(xiàn)域模型到關(guān)系數(shù)據(jù)模型的映射ORM通過從業(yè)務(wù)層分離一個(gè)單獨(dú)的持久(chji)化層來實(shí)現(xiàn)域模型與關(guān)系數(shù)據(jù)模型之間的映射。在持久化層通過向業(yè)務(wù)層公開API接口,來實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)持久化。Hibernate是基于ORM模式的一種實(shí)現(xiàn)。共五十頁(yè)5.2 Java 持久(chji)化對(duì)象對(duì)象-關(guān)系映射ORM
10、解決(jiju)的主要問題就是對(duì)象-關(guān)系的映射域模型是面向?qū)ο蟮亩P(guān)系數(shù)據(jù)模型是面向關(guān)系的域模型與關(guān)系模型中元素的對(duì)應(yīng)關(guān)系:面向?qū)ο蟮母拍蠲嫦蜿P(guān)系的概念類表對(duì)象表行、記錄屬性表列、字段共五十頁(yè)5.2 Java 持久(chji)化對(duì)象域模型與關(guān)系模型之間的不匹配 除了基本的匹配關(guān)系外,域模型與關(guān)系模型之間還存在許多不匹配的關(guān)系:域模型主要由域?qū)ο蟮年P(guān)聯(lián),依賴,聚集,一般化關(guān)系組成,而關(guān)系模型只有參照完整性域模型中有繼承關(guān)系,關(guān)系模型不能直接(zhji)表示繼承關(guān)系域模型中有多對(duì)多的關(guān)系,而關(guān)系模型中只能通過連接表來表示多對(duì)多的關(guān)聯(lián)關(guān)系域模型中有雙向關(guān)聯(lián)關(guān)系,關(guān)系模型只有單向參照關(guān)系,只有多參照
11、一的一方域模型提倡精粒度的設(shè)計(jì),而關(guān)系模型則提倡粗粒度的設(shè)計(jì)共五十頁(yè)5.3.1 Hibernate 概述(i sh)Hibernate是什么 面向java環(huán)境的對(duì)象-關(guān)系數(shù)據(jù)庫(kù)映射工具。1.開源的持久層框架.2.ORM(Object/Relational Mapping)映射工具,建立(jinl)面向?qū)ο蟮挠蚰P秃完P(guān)系數(shù)據(jù)模型之間的映射.3.連接java應(yīng)用和數(shù)據(jù)庫(kù)的中間件,簡(jiǎn)化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。 4.對(duì)JDBC進(jìn)行封裝,負(fù)責(zé)java對(duì)象的持久化.共五十頁(yè)5.3.1 Hibernate 概述(i sh)Hibernate 5. Hibernate使用java的反射機(jī)制,而不是字節(jié)碼
12、增強(qiáng)程序類實(shí)現(xiàn)透明性 6. Hibernate的性能非常好,因?yàn)樗且粋€(gè)輕量級(jí)框架。映射的靈活性很出色。它支持很多關(guān)系型數(shù)據(jù)庫(kù),從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系。7. 在分層結(jié)構(gòu)中處于持久化層,封裝對(duì)數(shù)據(jù)庫(kù)的訪問細(xì)節(jié)(xji),使業(yè)務(wù)邏輯層更專注于實(shí)現(xiàn)業(yè)務(wù)邏輯共五十頁(yè)5.3.1 Hibernate 概述(i sh)Hibernate不和特定(tdng)的業(yè)務(wù)領(lǐng)域相關(guān),能夠把任意一個(gè)Java應(yīng)用與數(shù)據(jù)庫(kù)系統(tǒng)連接,可以理解為是一種中間件。應(yīng)用1業(yè)務(wù)邏輯層應(yīng)用2業(yè)務(wù)邏輯層應(yīng)用3業(yè)務(wù)邏輯層持久化層(hibernate)數(shù)據(jù)庫(kù)1數(shù)據(jù)庫(kù)2數(shù)據(jù)庫(kù)3共五十頁(yè)5.3.1 Hibernate 概述(i sh)持久化
13、層封裝了數(shù)據(jù)訪問的細(xì)節(jié),為業(yè)務(wù)邏輯(lu j)層提供了面向?qū)ο蟮腁PI。完善的持久化層應(yīng)該達(dá)到的目標(biāo): 1.代碼重用性高,可完成所有的數(shù)據(jù)訪問操作。 2.如果需要的話,能夠支持多種數(shù)據(jù)庫(kù)平臺(tái)。 3.具有相對(duì)獨(dú)立性,當(dāng)持久化層變化時(shí),不會(huì)影響上層 實(shí)現(xiàn)共五十頁(yè)5.3.1 Hibernate 概述(i sh)Hibernate提供了對(duì)域模型和關(guān)系模型之間的完整映射,它的主要功能和優(yōu)點(diǎn):實(shí)現(xiàn)了ORM的核心功能,能用面向?qū)ο蟮母拍顏硖幚?chl)關(guān)系數(shù)據(jù)庫(kù) 功能強(qiáng)大,高效較高,除提供對(duì)象關(guān)系映射,同時(shí)提供了對(duì)象查詢語(yǔ)言HQL,和一套Criteria API等功能獨(dú)立的持久層框架,不與具體服務(wù)器相關(guān)能夠
14、支持絕大多數(shù)的關(guān)系數(shù)據(jù)庫(kù)Hibernate缺點(diǎn),配置較多,查詢支持不夠靈活,對(duì)分布式,安全檢查,集群,負(fù)載均衡的支持有限共五十頁(yè)5.3.1 Hibernate 概述(i sh)開發(fā)Hibernater的參考基本(jbn)步聚:獲取Hibernate相關(guān)的庫(kù)文件及參考手冊(cè)可查詢Hibernate的官方網(wǎng)站,/工程中引入Hibernate相關(guān)的Jar文件建立Hibernate的初始化配置文件根據(jù)概念模型建立系統(tǒng)的實(shí)體域類及它們關(guān)系根據(jù)概念模型建立關(guān)系數(shù)據(jù)表根據(jù)實(shí)體類與表之間的對(duì)應(yīng)關(guān)系建立映射文件建立Hibernate會(huì)話工廠及會(huì)話對(duì)象,通過會(huì)話對(duì)象執(zhí)行持久化操作共五十頁(yè)應(yīng)用程序 Configura
15、tion SessionFactory Session Query 映射(yngsh)文件.hbm.xmlTransaction配置文件hibernate.cfg.xml 回滾 提交(tjio) 數(shù)據(jù)庫(kù) 查詢異常正常共五十頁(yè)5.3.1 Hibernate 概述(i sh)Hibernate應(yīng)用程序結(jié)構(gòu)(jigu)示例:訂單管理應(yīng)用Order(訂單實(shí)體)OrderServices(訂單管理業(yè)務(wù)類)Hibernate對(duì)象關(guān)系映射文件Hibernate 會(huì)話APIHibernate配置文件關(guān)系數(shù)據(jù)庫(kù)Orders(訂單表)共五十頁(yè)5.3.2 Hibernate配置文件示例(shl)Hibernate配
16、置文件用于設(shè)置Hibernate鏈接數(shù)據(jù)庫(kù)的參數(shù)及一些(yxi)初始化參數(shù),它是一個(gè)XML文件jdbc:mysql:/localhost:3306/mydbrootadmincom.mysql.jdbc.Driverorg.hibernate.dialect.MySQLDialect共五十頁(yè)5.3.2 Hibernate配置文件示例(shl)Hibernate的參考手冊(cè)有對(duì)配置參數(shù)作詳細(xì)說明,常見的配置參數(shù)有:dialect數(shù)庫(kù)方言,方言用于屏蔽不同的數(shù)據(jù)庫(kù)的SQL的不同點(diǎn)。connection.driver_class 數(shù)據(jù)庫(kù)鏈接驅(qū)動(dòng)類connection.url 數(shù)據(jù)庫(kù)的JDBC鏈接的UR
17、Lconnection.username 數(shù)據(jù)庫(kù)帳號(hào)connection.password 數(shù)據(jù)庫(kù)密碼show_sql Hibernate將生成(shn chn)的SQL腳本是否打印在控制臺(tái)上hbm2ddl 指定Hibernate自動(dòng)生成數(shù)據(jù)表結(jié)構(gòu),常見值有:create-drop,create,update共五十頁(yè) 建立(jinl)實(shí)體類建立配置文件的需要(xyo)根據(jù)實(shí)體域模型建立類的實(shí)體類,例如用于描述客戶的實(shí)體類定義如下:public class Customer private Long id;/客戶編號(hào)OIDprivate String name;/客戶姓名private Date
18、 birth;/出生日期private String address;/地址private String telPhone;/聯(lián)系電話public String getAddress() return address;public void setAddress(String address) this.address = address;public Date getBirth() return birth;public void setBirth(Date birth) this.birth = birth;共五十頁(yè) 持久(chji)化類(PO)的特征Hibernate需要持久化的實(shí)體類又
19、稱之為持久化類(Persistent Object)又簡(jiǎn)稱POPO需要符合(fh)JavaBean的規(guī)范,必需提供一個(gè)不帶參數(shù)的構(gòu)造函數(shù),屬性通過set和get方法訪問PO需要有一個(gè)唯一的標(biāo)識(shí)屬性,該屬性用于區(qū)為同一PO類的不同PO實(shí)例,其值對(duì)應(yīng)數(shù)據(jù)表記錄的主鍵值,簡(jiǎn)稱為OID。PO的屬性應(yīng)當(dāng)都是可序列化的,最好PO自身實(shí)現(xiàn)java.io.Serializable接口。共五十頁(yè)建立(jinl)數(shù)據(jù)表根據(jù)關(guān)系模型建立相應(yīng)(xingyng)的數(shù)據(jù)表,數(shù)據(jù)表存放PO,示例建立Customer對(duì)應(yīng)的關(guān)系數(shù)據(jù)表。共五十頁(yè) 建立(jinl)PO與關(guān)系表的映射Hibernate通過XML配置文件來定義(dn
20、gy)PO與關(guān)系表的映射。共五十頁(yè) PO與關(guān)系(gun x)表的映射示例共五十頁(yè) PO映射(yngsh)PO映射主要由幾個(gè)部分組成PO類的映射,建立(jinl)PO類到關(guān)系數(shù)據(jù)表的映射OID的映射,建立PO的標(biāo)識(shí)符與關(guān)系表的主鍵的映射基本屬性的映射,建立PO的基本屬性與關(guān)系表的列的映射關(guān)系的映射,建立PO與PO的關(guān)系到關(guān)系數(shù)據(jù)庫(kù)中表與表之間的關(guān)系的映射。共五十頁(yè) OID的映射(yngsh)OID的映射由OID屬性和主鍵值生成器兩部分組成元素用于映射OID屬性,與基本屬性映射一致(yzh)。的用于指定主鍵的生成器,主鍵生成器用于生成代理主鍵值,Hibernate根據(jù)不同的關(guān)系數(shù)據(jù)庫(kù)有提供大量的主
21、鍵生成器,用戶根據(jù)需要也可以自定義主鍵生成器。共五十頁(yè) Hibernate主鍵生成器Hibernate常見(chn jin)主鍵生成器如下:標(biāo)識(shí)符生成器描述increment適用于代理主鍵,由hibernate自動(dòng)以遞增的方式產(chǎn)生。identity適用于代理主鍵,由底層數(shù)據(jù)庫(kù)自動(dòng)產(chǎn)生主鍵,底層數(shù)據(jù)庫(kù)需設(shè)置為自增的字段sequence適用于代理主鍵,Hibernate根據(jù) 底層的數(shù)據(jù)庫(kù)序列來產(chǎn)生標(biāo)識(shí)符,前提是數(shù)據(jù)庫(kù)需支持序列。hilo適用于代理主鍵,hibernate根據(jù)high/low算法來產(chǎn)生標(biāo)識(shí)符uuid適用于代理主鍵,Hibernate采用 128位UUID算法,來生成標(biāo)識(shí)符,UUID能
22、在網(wǎng)絡(luò)中產(chǎn)生唯一的標(biāo)識(shí)符,適用于字符串類型的主鍵。assigned適用于自然主鍵,由java程序負(fù)責(zé)產(chǎn)生標(biāo)識(shí)。在實(shí)際使用中應(yīng)當(dāng)盡量避免使用于自然主鍵。共五十頁(yè) 基本屬性(shxng)的映射元素(yun s)用于建立PO屬性與表列的映射,常見的屬性或子元素的含義如下:name 指定PO待映射的屬性名column 指定對(duì)應(yīng)的關(guān)系表的列名type 指定映射的數(shù)據(jù)類型,類型可以指定為Java的類型,Hibernate類型或關(guān)系數(shù)據(jù)庫(kù)類型。JAVA類型:java.lang.StringSQL類型:varcharHibernate類型:string共五十頁(yè)0 常見的類型(lixng)及其對(duì)應(yīng)關(guān)系SQL類型
23、Java類型Hibernate類型VARCHARStringstringINTInteger/intintCHARCharacter/charcharacterBITBoolean/booleanbooleanTEXTStringtextBLOBbytebinaryDATEjava.sql.DatedateTIMESTAMPjava.sql.Timestamptimestamp共五十頁(yè)1 使用XML配置映射(yngsh)的優(yōu)點(diǎn)Hibernate不會(huì)滲透到上層(shngcng)的域模型中,也不會(huì)滲透到下層的數(shù)據(jù)模型中。軟件開發(fā)人員可以獨(dú)立的設(shè)計(jì)域模型,而不必強(qiáng)迫遵守任何規(guī)范。數(shù)據(jù)庫(kù)設(shè)計(jì)人員也可以
24、獨(dú)立的設(shè)計(jì)數(shù)據(jù)模型,而不必強(qiáng)迫遵守任何規(guī)范。對(duì)象-關(guān)系的映射不依賴任何的程序代碼,如果需要修改對(duì)象-關(guān)系的映射,只需要修改XML文件,而不需要修改任何的程序代碼,提高了軟件的靈活性,并且更加容易維護(hù)。共五十頁(yè)5.3.3 使用(shyng)HibernateAPI執(zhí)行持久化Hibernate提供了對(duì)JDBC的完整(wnzhng)封裝用于執(zhí)行執(zhí)久化操作。Java應(yīng)用JDBC APIDBDriverManagerConnectionResultSet 基于JDBC的持久化操作Java應(yīng)用DBConfigurationSessionFactorySession Hiberate的持久化操作Hibern
25、ateAPIJDBCAPI共五十頁(yè) Hibernate API體系結(jié)構(gòu)共五十頁(yè) Hibernate APIConfiguration類用于描述Hibernate配置(pizh)示例Java中根據(jù)Hibernate配置文件構(gòu)建配置對(duì)象Configuration config = new Configuration();config.configure(resource/hibernate.cfg.xml);除了配置文件的方式之外,用戶也可以(ky)通過編程的方式設(shè)置和修改配置。config.setProperty(connection.pool_size, 20);config.addXML(E
26、mployee.hbm.xml);共五十頁(yè)SessionFactory用于產(chǎn)生Session接口的實(shí)例。Session是應(yīng)用程序與Hibernate的會(huì)話,提供了用于應(yīng)用程序執(zhí)行持久化操作(cozu)的方法。示例,Java中建立SessionFactory及Session的實(shí)例:SessionFactory sf = config.buildSessionFactory();Session session = sf.openSession(); Hibernate API共五十頁(yè)Session接口提供了應(yīng)用程序執(zhí)行持久化操作的方法,常見方法有:save 保存一個(gè)新的POsaveOrUpdate
27、 更新或保存POmerge 檢查數(shù)據(jù)庫(kù)中是否存在不存在即新加否則更新update 更新POdelete 刪除(shnch)POload/get根據(jù)OID加載POcreateQuery 根據(jù)提供的特定的HQL語(yǔ)言查詢POcreateCretiera 通過API方法查詢符合條件的PO Hibernate API共五十頁(yè) Hibernate Session 使用(shyng)示例Customer cus = new Customer();cus.setAddress(XM);cus.setBirth(Date.valueOf(1982-02-02);cus.setName(Tony);/執(zhí)行新加保存session.save(cus);/加載并刪除session.delete(session.load(Customer.class, 1l);/根據(jù)(gnj)名稱查詢session.createQuery(from Customer a where “ + “ like %T%).list();共五十頁(yè) SessionFactorySessionFactory用于建立Session的工廠類,一般一個(gè)數(shù)據(jù)源對(duì)應(yīng)一SessionFactory
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度擔(dān)保人免責(zé)知識(shí)產(chǎn)權(quán)擔(dān)保協(xié)議3篇
- 2024年度影視作品錄像拍攝與制作合同3篇
- 2024年國(guó)際工程項(xiàng)目挖掘機(jī)租賃及跨境合作合同3篇
- 2024年度教育培訓(xùn)廣告制作與推廣合同樣本3篇
- 2024年度房產(chǎn)代持合同續(xù)簽與變更協(xié)議范本6篇
- 2024年度農(nóng)村房屋租賃合同范本(含租賃期限和租金調(diào)整)6篇
- 新疆警察學(xué)院《市場(chǎng)風(fēng)險(xiǎn)管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 《深圳CBD立體彩》課件
- 修剪樹枝清算合同范例
- 宣傳長(zhǎng)期合作合同范例
- 冀人版科學(xué)(2017)六年級(jí)上冊(cè)期末測(cè)試卷及答案
- 《中考體育項(xiàng)目跳繩》教案
- 消防部隊(duì)干部競(jìng)爭(zhēng)上崗答辯題1
- 增服葉酸預(yù)防神經(jīng)管缺陷理論知識(shí)考核試題及答案
- 施工現(xiàn)場(chǎng)臨水施工方案完整
- 單證管理崗工作總結(jié)與計(jì)劃
- 人教版九年級(jí)上冊(cè)數(shù)學(xué) 21.3 實(shí)際問題與一元二次方程(傳播問題)專題練習(xí)(Word版含答案)
- 安全安全隱患整改通知單及回復(fù)
- GB∕T 799-2020 地腳螺栓-行業(yè)標(biāo)準(zhǔn)
- “僵尸型”社會(huì)組織注銷登記表
- 田徑活動(dòng)記錄第一學(xué)期記錄
評(píng)論
0/150
提交評(píng)論