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

正文內容

hibernate-資料下載頁

2024-10-09 14:54本頁面
  

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