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

正文內(nèi)容

hibernate持久化數(shù)據(jù)庫第二天(編輯修改稿)

2025-01-03 21:58 本頁面
 

【文章內(nèi)容簡介】 Customer 的多對一單向關(guān)聯(lián)需要在Order 類中定義一個 Customer 屬性 , 而在 Customer 類中無需定義存放 Order 對象的集合屬性 ? 關(guān)系數(shù)據(jù)模型 :ORDERS 表中的 CUSTOMER_ID 參照 CUSTOMER 表的主鍵 ORDERS 表 CUSTOMERS 表 建立多對一的單向關(guān)聯(lián)關(guān)系 manytoone name=customer column=CUSTOMER_ID class=Customer notnull=true Hibernate 使用 manytoone 元素來映射多對一關(guān)聯(lián)關(guān)系 manytoone屬性 : * name:設(shè)定待映射的持久化類的名字。 * column:設(shè)定和持久化類的屬性對應(yīng)的表的外鍵。 * class:設(shè)定持久化類的屬性的類型。 * notnull:是否允許為空。 建立多對一的單向關(guān)聯(lián)關(guān)系 建立多對一的單向關(guān)聯(lián)關(guān)系 知識點 1:先保存訂單,再保存客戶 Hibernate的輸出結(jié)果 : Hibernate: insert into orders (order_number, price, customer_id) values (?, ?, ?) Hibernate: insert into customers (name) values (?) Hibernate: update orders set order_number=?, price=?, customer_id=? where id=? Jdbc執(zhí)行 : * insert into orders (id,order_number, price, customer_id) values (?, ?, ?,null)。 * insert into customers (id,name) values (?,?) * c_id=select id from customers * update orders set order_number=?, price=?, customer_id=? where id=? 建立多對一的單向關(guān)聯(lián)關(guā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)。 建立多對一的單向關(guān)聯(lián)關(guān)系 知識點 3:查詢訂單 Hibernate的輸出結(jié)果 : Hibernate: select as id1_1_, as order2_1_1_, as price1_1_, as customer4_1_1_, as id0_0_, as name0_0_ from orders order0_ left outer join customers customer1_ on = where =? Jdbc執(zhí)行 : SELECT * FROM customers c LEFT OUTER JOIN orders o ON(=) WHERE =2 建立多對一的單向關(guān)聯(lián)關(guān)系 知識點 4:先保存客戶,再保存訂單 在下面的代碼中注釋掉 (c),會有什么后果 產(chǎn)生如下異常 : object references an unsaved transient instance save the transient instance before flushing: 建立多對一的單向關(guān)聯(lián)關(guān)系 manytoone name=customer column=CUSTOMER_ID class=Customer cascade=saveupdate notnull=true / property name=* 知識點 4:級聯(lián)保存和更新 當 hibernate持久化一個臨時對象時,在默認情況下,他不會自動持久化所關(guān)聯(lián)的其他臨時對象,會拋出 manytoone元素的cascade屬性為 saveupdate的話,可實現(xiàn)自動持久化所關(guān)聯(lián)的對象。 建立多對一的單向關(guān)聯(lián)關(guān)系 建立一對多的雙向關(guān)聯(lián)關(guān)系 ? 雙向 1n 與 雙向 n1 是完全相同的兩種情形 ? 雙向 1n 需要在 1 的一端可以訪問 n 的一端 , 反之依然 . ? 域模型 :從 Order 到 Customer 的多對一單向關(guān)聯(lián)需要在 Order 類中定義一個 Customer 屬性 , 而在 Customer 類中需定義存放 Order 對象的集合屬性 ? 關(guān)系數(shù)據(jù)模型 :ORDERS 表中的 CUSTOMER_ID 參照 CUSTOMER 表的主鍵 ORDERS 表 CUSTOMERS 表 建立一對多的雙向關(guān)聯(lián)關(guān)系 Hibernate使用 set元素來映射一對多關(guān)聯(lián)關(guān)系 set name=orders“ table=t_orders key column name=customer_id/column /key onetomany class=/ /set set 元素來映射 持久化類的 set 類型的屬性 name:設(shè)定待映射持久化類的屬性名。 cascade:設(shè)定級聯(lián)操作的程度。 key子屬性 :設(shè)定與所關(guān)聯(lián)的持久化類對應(yīng)的表的外鍵。 * column: 指定關(guān)聯(lián)表的外鍵名 onetomany子屬性 :設(shè)定所關(guān)聯(lián)的持久化類 (集合中存放的對象 )。 * class: 指定關(guān)聯(lián)的持久化類的類名 映射一對多關(guān)聯(lián)關(guān)系 Hibernate要求在持久化類中定義集合屬性時,必須把屬性聲明為接口類型,如 Set、 Map、 久化類的透明性,當 hibernate調(diào)用 setOrders()方法時, 傳遞的參數(shù)是 Hibernate自定義的實現(xiàn)該接口類的實例 。如果定義成類 (如 HashSet)型,強迫 hibernate把該類型的實例傳給他。 底層代碼 : SetE orders= PersistentSet class PersistentSet implements 通常在定義集合屬性時,直接初始化為一個實現(xiàn)類的實例。 private Set orders = new HashSet()。 可避免空指針異常。 知識點 5:定義為接口類型 建立一對多的雙向關(guān)聯(lián)關(guān)系 知識點 6:保存客戶和訂單 (客戶和訂單建立雙向關(guān)聯(lián) ) 建立一對多的雙向關(guān)聯(lián)關(guān)系 知識點 7:保存客戶和不保存訂單 在下面的代碼中注釋掉 (order1),會有什么后果 產(chǎn)生如下異常 : object references an unsaved transient instance save the transient instance before flushing: 建立一對多的雙向關(guān)聯(lián)關(guān)系 知識點 7:級聯(lián)保存和更新 當 hibernate持久化一個臨時對象時,在默認情況下,他不會自動持久化所關(guān)聯(lián)的其他臨時對象, set元素的 cascade屬性為saveupdate的話,可實現(xiàn)自動持久化所關(guān)聯(lián)的對象 。 set name=orders table=orders cascade=saveupdate key column name=customer_id/column /key onetomany class=/ /set set 元素來映射 持久化類的 set 類型的屬性 cascade:設(shè)定級聯(lián)操作的程度 。 建立一對多的雙向關(guān)聯(lián)關(guān)系 知識點 8:查詢客戶和訂單 Jdbc實現(xiàn) select as id0_0_, as name0_0_ from customers customer0_ where =? select as customer4_0_1_, as id1_, as id1_0_, as order2_1_0_, as price1_0_, as customer4_1_0_ from orders orders0_ where =? 建立一對多的雙向關(guān)聯(lián)關(guān)系 order1關(guān)聯(lián)到 customer 而 customer沒有關(guān)聯(lián)到 order1 customer關(guān)聯(lián)到 order2 order3 而 order2 order3 沒有關(guān)聯(lián)到 customer 問題 (order1) 插入幾條記錄 4 (customer) 插入幾條記錄 3 (order2) 插入幾條記錄 1 知識點 9:對象導(dǎo)航 建立一對多的雙向關(guān)聯(lián)關(guān)系 知識點 9:對象導(dǎo)航 Order orderu1=new Order()。 (o_001)。 Order orders2=new Order()。 (o_002)。 Order orders3=new Order()。 (o_003)。 Customer c=new Customer()。 (楊逍 )。 //orderu1關(guān)聯(lián) c c不關(guān)聯(lián) order1 (c)。 //c關(guān)聯(lián) order2和 order3 order2和 order3不關(guān)聯(lián) c ().add(orders2)。 ().add(orders3)。 //(orders2)。 (orderu1)。 建立一對多的雙向關(guān)聯(lián)關(guān)系 知識點 10:保持程序的健壯性 Order orderu1=new Order()。 (o_001)。 Customer c=new Customer()。 (楊逍 )。 //訂單和客戶關(guān)聯(lián) (c)。 //客戶和訂單關(guān)聯(lián) //().add(orderu1)。 這句話是否是可有可無的 ,為了保持程序的健壯性 ,加上 //保存客戶 (c)。 //保存訂單 (orderu1)。 方法名 (Customer c){ ().size.==0 這是在使用訂單的時候就關(guān)聯(lián)不上訂單了 } 建立一對多的雙向關(guān)聯(lián)關(guān)系 更改訂單表 id=6的customer_id=3更改為 4 上面的代碼產(chǎn)生兩條 update語句 ,如何產(chǎn)生一條語句呢 ,完成上面的功能呢 ? Hibernate: update orders set order_number=?, price=?, customer_id=? where id=? Hibernate: update orders set customer_id=? where id=? 知識點 11:訂單 變更客戶 建立一對多的雙向關(guān)聯(lián)關(guān)系 更改訂單表 id=6的 customer_id=3更改為 4 * 使用 session緩存的監(jiān)控功能講解為什么產(chǎn)生兩條 update語句 Hibernate會自動清理緩存中的所有持久化對象,按照持久化對象的改變來同步更新數(shù)據(jù)庫,因此執(zhí)行了上述的兩條更新語句所以會產(chǎn)生兩條 update語句 知識點 11:訂單 變更客戶 建立一對多的雙向關(guān)聯(lián)關(guān)系 ? 在 hibernate中通過對 inverse 屬性的值決定是由雙向關(guān)聯(lián)的哪一方來維護表和表之間的關(guān)系 . inverse=false 的為主動方,inverse=true 的為被動方 , 由主動方負責維護關(guān)聯(lián)關(guān)系 ? 在沒有設(shè)置 inverse=true 的情況下,父子兩邊都維護父子關(guān)系 ? 在 1n 關(guān)系中,將 n 方設(shè)為主控方將有助于性能改善 (如果要國家元首記住全國人民的名字,不是太可能,但要讓全國人民知道國家元首, 就容易的多 ) ? 在 1N 關(guān)系中,若將 1 方
點擊復(fù)制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1