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

正文內(nèi)容

hibernate-資料下載頁

2025-09-30 14:54本頁面
  

【正文】 使用 new 操作符初始化的對象不是立刻就持久的。它們的狀態(tài)是瞬時的,也就是說它們沒有任何跟數(shù)據(jù)庫表相關(guān)聯(lián)的行為,只要應(yīng)用不再引用這些對象(不再被任何其它對象所引用),它們的狀態(tài)將會丟失,并由垃圾回收機(jī)制回收。 ?持久化對 (Persist Objects): 持久實(shí)例是任何具有數(shù)據(jù)庫標(biāo)識的實(shí)例。它有持久化管理器 Session統(tǒng)一管理,持久實(shí)例是在事務(wù)中進(jìn)行操作的 ——它們的狀態(tài)在事務(wù)結(jié)束時同數(shù)據(jù)庫進(jìn)行同步。當(dāng)事務(wù)提交時,通過執(zhí)行 SQL的 INSERT、 UPDATE和 DELETE語句把內(nèi)存中的狀態(tài)同步到數(shù)據(jù)庫中。 ?離線對象 (Detached Objects): Session關(guān)閉之后,持久化對象就變?yōu)殡x線對象。離線表示這個對象不能再與數(shù)據(jù)庫保持同步,它們不再受 Hibernate管理。 持久化對象的生命周期( lifecycle) Hibernate臟數(shù)據(jù)字段撿入 ?檢索一個用戶,并將它的用戶名更改為“ Mary” Session session = ()。 Transaction tx = ()。 User user = (User) (, userId)。 (Mary)。 ()。 ()。 持久化對象必須唯一 ?一個 Session中不能同時存在兩個 ID相同的持久化對象 例如: id為 userId的 user_1對象已經(jīng)存在 Session中,這時如果 Session中試圖產(chǎn)生一個 user_2對象!! Session session = ()。 Transaction tx = ()。 User user_1 = (User)(,userId)。 User user_2 = new User(userId,”Mary”)。 (user_2)。 最后將會產(chǎn)生異常 : : a different object with the same identifier value was already associated with the session 解決辦法: 使用 evict ()方法將 user_1實(shí)例從 session中去除。(user_1)。 五、 Hibernate查詢 ?概述: 數(shù)據(jù)查詢與檢索是 Hibernate中的一個亮點(diǎn)。相對其他 ORM實(shí)現(xiàn)而言, Hibernate提供了靈活多樣的查詢機(jī)制。 ? 標(biāo)準(zhǔn)化對象查詢 (Criteria Query): 以對象的方式進(jìn)行查詢,將查詢語句封裝為對象操作。優(yōu)點(diǎn):可讀性好,符合 Java 程序員的編碼習(xí)慣。缺點(diǎn):不夠成熟,不支持投影( projection) 或統(tǒng)計函數(shù)( aggregation) ? Hibernate語言查詢( Hibernate Query Language, HQL) : 它是完全面向?qū)ο蟮牟樵冋Z句,查詢功能非常強(qiáng)大,具備繼承、多態(tài)和關(guān)聯(lián)等特性 。 Hibernate官方推薦使用 HQL進(jìn)行查詢。 ? Native SQL Queries( 原生 SQL查詢) :直接使用數(shù)據(jù)庫提供的SQL方言進(jìn)行查詢。 例子:標(biāo)準(zhǔn)化對象查詢 (Criteria Query) ?簡單例子: 查詢用戶名以“ J”開頭的所有用戶。 Criteria criteria = ()。 ((name,J%))。 List users = ()。 Hibernate語言查詢( Hibernate Query Language, HQL) ? HQL用面向?qū)ο蟮姆绞缴?SQL ? 以類和屬性來代替表和數(shù)據(jù)列 ? 支持多態(tài) ? 支持各種關(guān)聯(lián) ? 減少了 SQL的冗余 ? HQL支持所有的關(guān)系數(shù)據(jù)庫操作 ? 連接( joins,包括 Inner/outer/full joins),笛卡爾積 (cartesian products) ? 投影( projection) ? 聚合( Aggregation, max, avg)和分組( group) ? 排序( Ordering) ? 子查詢( Subqueries) ? SQL函數(shù)( SQL function calls) 例子: Hibernate語言查詢( Hibernate Query Language, HQL) ?簡單例子: 查詢用戶名以“ J”開頭的所有用戶。 Query query = ( from User user where like 39。J%39。)。 List users = ()。 ?復(fù)雜例子: 從 User和 Group中查找屬于“ admin”組的所有用戶。 Query query = ( “from User user where =?admin’” )。 如果用傳統(tǒng)的 SQL則查詢語句如下: select as userId, as name, as groupId, as idCardId from TBL_USER user, TBL_GROUP group where (=39。admin39。 and =) 六、 Hibernate最佳實(shí)踐( Best Practices) 使用 Configuration裝載映射文件時,不要使用絕對路徑裝載。最好的方式是通過 getResourceAsStream()裝載映射文件,這樣 Hibernate會從 classpath中尋找已配置的映射文件。 SessionFactory的創(chuàng)建非常消耗資源,整個應(yīng)用一般只要一個SessionFactory就夠了,只有多個數(shù)據(jù)庫的時候才會使用多個SessionFactory。 在整個應(yīng)用中, Session和事務(wù)應(yīng)該能夠統(tǒng)一管理。( Spring為Hibernate提供了非常好的支持) 將所有的集合屬性配置設(shè)置為懶加載( lazy=”true”)。 在, lazy默認(rèn)值是“ false”,但 lazy的默認(rèn)改為“ true”了。 Hibernate最佳實(shí)踐( Best Practices) 在定義關(guān)聯(lián)關(guān)系時,集合首選 Set, 如果集合中的實(shí)體存在重復(fù),則選擇 List( 在定義配置文件時,可以將 List定義為 bag), 數(shù)組的性能最差。 在一對多的雙向關(guān)聯(lián)中,一般將集合的 inverse屬性設(shè)置為 true, 讓集合的對方維護(hù)關(guān)聯(lián)關(guān)系。例如: GroupUser, 由 User來維護(hù) Group和 User的關(guān)聯(lián)關(guān)系。 HQL子句本身大小寫無關(guān),但是其中出現(xiàn)的類名和屬性名必須注意大小寫區(qū)分。 在非分布式架構(gòu)中, 不需要使用 DTO來向上層傳輸數(shù)據(jù)。直接使用POJO的 Entity就可以了。 如果要精通 Hibernate, 熟練掌握關(guān)系數(shù)據(jù)庫理論和 SQL是前提條件。 Hibernate資源 ? 官方網(wǎng)站: ? 國內(nèi)網(wǎng)站: ? Java新視線論壇: ? 《 Hibernate 中文開發(fā)指南 》 作者夏昕 ( ? 《 深入淺出 Hibernate》 作者:夏昕 曹曉鋼 唐勇 ( ? 《 Hibernate in Action》 作者: Christian Bauer and Gavin King( ) ? 《 Hibernate: A Developer39。s Notebook》 作者: James Elliott 結(jié)束,謝謝 !
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1