freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

hibernate持久化數(shù)據(jù)庫 第二天-預(yù)覽頁

2024-12-31 21:58 上一頁面

下一頁面
 

【正文】 ty name=totalprice formula=(select sum() from customer o)/ 注意 :在 sql語句中使用別名 ,派生屬性中使用的是 sql語句 持久化類的屬性及訪問方法 知識(shí)點(diǎn) 6:控制 insert、 update語句 映射屬性 作用 property insert屬性 若為 false,在 insert語句中不包含該字段,該字段永遠(yuǎn)不能被插入。 class mutable屬性 若為 false,等價(jià)于所有的 property元素的 update屬性為 false,整個(gè)實(shí)例不能被更新。 class dynamicupdate屬性 若為 true,等價(jià)于所有的 property元素的 update為 true,更新一個(gè)對(duì)象時(shí),動(dòng)態(tài)生成 update語句,語句中僅包含取值不為 null的字段。 注意:請(qǐng)?jiān)?“ 英文輸入法 ” 狀態(tài)下使用該符號(hào) 類中增加 private String des。為保證 ID的唯一性,應(yīng)該讓Hibernate來為 ID付值 。 ? 包中的 Object 類有 public boolean equals (Object obj)方法。也就是說,對(duì)于任何引用值 X 和 Y,當(dāng)且僅當(dāng) X 和 Y 指向同一對(duì)象時(shí), X==Y返回真。 (session的一級(jí)緩存 ) Customer c1 = (Customer)(,1)。 Hibernate提供了標(biāo)識(shí)符生成器接 口: 。條件是數(shù)據(jù)庫支持自動(dòng)增長數(shù)據(jù)類型。 適用于 oracle 數(shù)據(jù)庫 hilo 適用于代理主鍵。 native 適用于代理主鍵。 assigned 適用于自然主鍵。 foreign 當(dāng)前對(duì)應(yīng)的字段在數(shù)據(jù)庫中生成外鍵 映射文件中的標(biāo)識(shí)符 ? increment 標(biāo)識(shí)符生成器 由 Hibernate 以遞增的方式為代理主鍵賦值 ? Hibernate 會(huì)先讀取 NEWS 表中的主鍵的最大值 , 而接下來向 NEWS 表中插入記錄時(shí) , 就在 max(id) 的基礎(chǔ)上遞增 , 增量為 1.(帶走 +1) ? 適用范圍 : – 由于 increment 生存標(biāo)識(shí)符機(jī)制不依賴于底層數(shù)據(jù)庫系統(tǒng) , 因此它適合所有的數(shù)據(jù)庫系統(tǒng) – 適用于只有單個(gè) Hibernate 應(yīng)用進(jìn)程 訪問同一個(gè)數(shù)據(jù)庫的場合 – id 必須為 long, int 或 short 類型 , 如果把 id 定義為 byte 類型 , 在運(yùn)行時(shí)會(huì)拋出異常 知識(shí)點(diǎn) 6: increment 標(biāo)識(shí)符生成器 映射文件中的標(biāo)識(shí)符 知識(shí)點(diǎn) 7: identity 標(biāo)識(shí)符生成器 ? identity 標(biāo)識(shí)符生成器由底層數(shù)據(jù)庫來負(fù)責(zé)生成標(biāo)識(shí)符 , 它要求底層數(shù)據(jù)庫把主鍵定義為自動(dòng)增長字段類型(加 1帶走) ? 適用范圍 : – 由于 identity 生成標(biāo)識(shí)符的機(jī)制依賴于底層數(shù)據(jù)庫系統(tǒng) , 因此 , 要求底層數(shù)據(jù)庫系統(tǒng)必須支持自動(dòng)增長字段類型 . 支持自動(dòng)增長字段類型的數(shù)據(jù)庫包括 : DB2, MySQL, MSSQLServer, Sybase 等 – id 必須為 long, int 或 short 類型 , 如果把 id 定義為 byte 類型 , 在運(yùn)行時(shí)會(huì)拋出異常 映射文件中的標(biāo)識(shí)符 知識(shí)點(diǎn) 8:sequence 標(biāo)識(shí)符生成器 ? sequence 標(biāo)識(shí)符生成器利用底層數(shù)據(jù)庫提供的序列來生成標(biāo)識(shí)符 . ? Hibernate 在持久化一個(gè) News 對(duì)象時(shí) , 先從底層數(shù)據(jù)庫的 news_seq 序列中獲得一個(gè)唯一的標(biāo)識(shí)號(hào) , 再把它作為主鍵值 ? 適用范圍 : – 由于 sequence 生成標(biāo)識(shí)符的機(jī)制依賴于底層數(shù)據(jù)庫系統(tǒng)的序列 , 因此 , 要求底層數(shù)據(jù)庫系統(tǒng)必須支持序列 . 支持序列的數(shù)據(jù)庫包括: DB2 Oracle – id 必須為 long, int 或 short 類型 , 如果把 id 定義為 byte 類型 , 在運(yùn)行時(shí)會(huì)拋出異常 Oralce數(shù)據(jù)庫中序列的名稱 映射文件中的標(biāo)識(shí)符 知識(shí)點(diǎn) 9:hilo 標(biāo)識(shí)符生成器 ? hilo 標(biāo)識(shí)符生成器由 Hibernate 按照一種 high/low 算法 *生成標(biāo)識(shí)符 , 它從數(shù)據(jù)庫的特定表的字段中獲取 high 值 . ? Hibernate 在持久化一個(gè) News 對(duì)象時(shí) , 由 Hibernate 負(fù)責(zé)生成主鍵值 . hilo 標(biāo)識(shí)符生成器在生成標(biāo)識(shí)符時(shí) , 需要讀取并修改 HI_TABLE 表中的 NEXT_VALUE 值 . ? 適用范圍 : – 由于 hilo 生存標(biāo)識(shí)符機(jī)制不依賴于底層數(shù)據(jù)庫系統(tǒng) , 因此它適合所有的數(shù)據(jù)庫系統(tǒng) – id 必須為 long, int 或 short 類型 , 如果把 id 定義為 byte 類型 , 在運(yùn)行時(shí)會(huì)拋出異常 存放使用次數(shù)的表名 hi_table表的列 ,存放使用次數(shù) 步長 映射文件中的標(biāo)識(shí)符 知識(shí)點(diǎn) 10:native 標(biāo)識(shí)符生成器 ?native 標(biāo)識(shí)符生成器依據(jù)底層數(shù)據(jù)庫對(duì)自動(dòng)生成標(biāo)識(shí)符的支持能力 , 來選擇使用 identity, sequence 或 hilo 標(biāo)識(shí)符生成器 . ?適用范圍 : ?由于 native 能根據(jù)底層數(shù)據(jù)庫系統(tǒng)的類型 , 自動(dòng)選擇合適的標(biāo)識(shí)符生成器 , 因此很適合于跨數(shù)據(jù)庫平臺(tái)開發(fā) ?id 必須為 long, int 或 short 類型 , 如果把 id 定義為 byte 類型 , 在運(yùn)行時(shí)會(huì)拋出異常 映射文件中的標(biāo)識(shí)符 知識(shí)點(diǎn) 11_1: assigned 標(biāo)識(shí)符生成器 映射單個(gè)自然主鍵 映射文件中的標(biāo)識(shí)符 知識(shí)點(diǎn) 11_2: 映射自然主鍵 映射復(fù)合主鍵 方法一 映射文件中的標(biāo)識(shí)符 知識(shí)點(diǎn) 11_3: 映射自然主鍵 映射復(fù)合主鍵 方法二 知識(shí)點(diǎn)三:映射一對(duì)多關(guān)聯(lián)關(guān)系 一對(duì)多關(guān)聯(lián)關(guān)系 ? 單向關(guān)聯(lián):僅僅 建立從 Order到 Customer的多對(duì)一關(guān)聯(lián),即僅僅在 Order類中定義 customer屬性 。 * column:設(shè)定和持久化類的屬性對(duì)應(yīng)的表的外鍵。 * insert into customers (id,name) values (?,?) * c_id=select id from customers * update orders set order_number=?, price=?, customer_id=? where id=? 建立多對(duì)一的單向關(guān)聯(lián)關(guān)系 知識(shí)點(diǎn) 2:先保存客戶,再保存訂單 Hibernate的輸出結(jié)果 : Hibernate: insert into customers (name) values (?) Hibernate: insert into orders (order_number, price, customer_id) values (?, ?, ?) Jdbc執(zhí)行 : * insert into customers (id,name) values (?,?) * c_id=select id from customers * insert into orders (id,order_number, price, customer_id) values (?, ?, ?,cid)。 key子屬性 :設(shè)定與所關(guān)聯(lián)的持久化類對(duì)應(yīng)的表的外鍵。 底層代碼 : SetE orders= PersistentSet class PersistentSet implements 通常在定義集合屬性時(shí),直接初始化為一個(gè)實(shí)現(xiàn)類的實(shí)例。 set name=orders table=orders cascade=saveupdate key column name=customer_id/column /key onetomany class=/ /set set 元素來映射 持久化類的 set 類型的屬性 cascade:設(shè)定級(jí)聯(lián)操作的程度 。 (o_002)。 (楊逍 )。 //(orders2)。 Customer c=new Customer()。 這句話是否是可有可無的 ,為了保持程序的健壯性 ,加上 //保存客戶 (c)。 //查詢訂單 Order o6=(Order)(, 6)。...39。 //去掉 (有影響不會(huì)更新 ) ().add(o6)。 (customer)。 知識(shí)點(diǎn) 11:set中 inverse屬性 建立一對(duì)多的雙向關(guān)聯(lián)關(guān)系 知識(shí)點(diǎn) 12:解除關(guān)聯(lián)關(guān)系 解除 6號(hào)訂單和 3號(hào)客戶的關(guān)聯(lián) 建立一對(duì)多的雙向關(guān)聯(lián)關(guān)系 知識(shí)點(diǎn) 13:級(jí)聯(lián)刪除刪除 1號(hào)客戶的同時(shí),刪除 1號(hào)客戶所關(guān)聯(lián)的訂單 如果 cascade屬性取默認(rèn)值 none,不會(huì)自動(dòng)刪除和 customer關(guān)聯(lián)的其他持久化對(duì)象。 delete from orders where id=1 建立一對(duì)多的雙向關(guān)聯(lián)關(guān)系 知識(shí)點(diǎn) 14:理解什么是 父子關(guān)系 所謂父子關(guān)系: 是指父方來控制子方的持久化生命周期,子方對(duì)象必須和一個(gè)父方對(duì)象關(guān)聯(lián)。 //從客戶集合刪除訂單 ().remove(o6)。 customer對(duì)象關(guān)聯(lián)的所有 order對(duì)象。 reresh:刷新 ,讓 session和數(shù)據(jù)庫同步 ,執(zhí)行查詢 ,把數(shù)據(jù)庫的最新信息顯示出來 ,更新本地緩存的對(duì)象狀態(tài) . clear:清空緩存 ,等價(jià)于 ()。 4 c = null。 //關(guān)閉 session 清空緩存 9 (())。 2。 知識(shí)點(diǎn) 4_3:清理 session緩存 操縱持久化對(duì)象 //查詢出對(duì)象后 ,再修改對(duì)象的屬性 public vid testSessionUpdateCache(){ Session session=()。 //該行代碼加和不加沒有影響 //(c)。當(dāng)清理 緩存時(shí),通過比較對(duì)象的當(dāng)前屬性和快照,來判斷對(duì)象的那些屬性發(fā)生了變化。 Customer c = new Customer)。 ()。 結(jié)束生命周期 結(jié)束生命周期 知識(shí)點(diǎn) 9:測試 hibernate中 java對(duì)象的狀態(tài) 知識(shí)點(diǎn) 10:對(duì)象的狀態(tài)轉(zhuǎn)換圖 臨時(shí)狀態(tài) 持久化狀態(tài) 游離狀態(tài) 刪除狀態(tài) new 語句 get() Load() () () () save() saveOrUpdate() evict() close() clear() update() saveOrUpdate() lock() delete() delete() 垃圾回收 垃圾回收 垃圾回收 知識(shí)點(diǎn) 11:對(duì)象的狀態(tài)總結(jié) Session緩存存在對(duì)應(yīng)的記錄 數(shù)據(jù)中存在對(duì)應(yīng)的記錄 臨時(shí)態(tài) no no 持久態(tài) yes 可能有也可能沒有 游離態(tài) no 可能有 (數(shù)據(jù)沒有刪除 )也可能沒有 Customer c=new Customer()。但可以定義屬性為 int id * 此時(shí) id默認(rèn)值是 0而不是 null,應(yīng)該執(zhí)行更新操作 * 但實(shí)際我們要執(zhí)行的插入操作。 觸發(fā)器的行為導(dǎo)致緩存與數(shù)據(jù)庫中的數(shù)據(jù)不一致。分為兩種:外鍵關(guān)聯(lián)和主鍵關(guān)聯(lián)。 fk pk 唯一 映射一對(duì)一外鍵雙向關(guān)聯(lián) ? 對(duì)于基于外鍵的 11關(guān)聯(lián),其外鍵可以存放在任意一邊, 在需要存放外鍵一端,增加 manytoone 元素 。 (bochy)。 (address)。 ()。 //創(chuàng)建公司 Company pany=new Company()。 (pany)。 } 知識(shí)點(diǎn) 2:測試唯一性 映射一對(duì)一主鍵雙向關(guān)聯(lián) ? 一對(duì)一的另一種解決方式就是主鍵關(guān)聯(lián),在這種關(guān)聯(lián)關(guān)系中,要求兩個(gè)對(duì)象的主鍵必須保持一致,通過兩個(gè)表的主鍵建立關(guān)聯(lián)關(guān)系,無須外鍵參與。 Company pany=new Company()。 (中國 )。 (pany)。 一個(gè)用戶可以選修多門角色 , 一個(gè)角色可以被多名用戶選修 。也就是說,一邊的 set元素的 key的 cloumn值為a,manytomany 的 column 為 b;則另一邊的 set 元素的 key 的 column 值 b,manytomany的 column 值為
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1