Hibernate基礎知識,談到這里,首先最重要的是應該理解ORM,ORM是什么呢?3個單詞的縮寫,Object-Relation Mapping,既對象-關系映射的意思.這是一種模式,這種模式在單個組件中負責說有實例業務對象的持久化,封裝了數據庫訪問的細節,這就是Hibernate的核心原理.ORC解決主要的問題就是對象-關系映射.因為項目的業務邏輯模型是面向對象的,而關系型數據模型是面向關系的,所以Hibernate把一個持久化的類和數據庫中的一張表對應,類的每一個實例對應這個表的一條記錄.類的每一個屬性,對應這表里的一個字段.這樣就把一個對象和一個關系型數據表映射在了一起,這就是ORM模式.
在Hibernate開發的文檔里,把Hibernate定義成了一種對JDBC做了輕量級封裝的對象-關系映射工具.所謂輕量級封裝就是指沒有完全的把JDBC封裝,我們的程序還可以繞過Hibernate層直接訪問數據庫.下面是Hbernate的幾個接口,其中前5個是核心接口,后3個是回調接口.
1)Configuration:配置Hibernate,啟動Hibernate,創建SessionFactory工廠對象.
2)SessionFactory:初始化Hibernate,創建Session對象.它是線程安全的,就是說可以多個線程共同操作這個對象,而且是重量級的,在緩存中存儲的大量的SQL語句和映射元素數據.所以這個對象我們不能輕易的創建和銷毀,一個數據庫創建一個SessionFactor工廠對象.
3)Session:負責保存,修改,刪除,查詢和加載對象.這個Sessin不是線程安全的,所以我們要避免多個線程共享一個Session,這個Session是輕量級的,就是說創建和銷毀這個Session不需要消耗太多的系統資源.
4)Transaction:事務管理.
5)Query:執行數據庫查詢.Query接口包裝了一個HQL語句,和SQL語句很相似,但是HQL語句是面向對象的,它引用類名和屬性名,而不是表明和字段名.還有一個接口Criteria完全封裝了基于字符串形式的查詢語句,比Query接口更加面向對象,擅長動態的查詢.
6)Lifecycle:持久化類實現的接口,讓它的實例能響應被加載,保存,刪除的事件.
7)Validatable:讓持久化類的實例保存之前進行數據的驗證,不過這個不推薦使用,因為數據驗證是業務邏輯層的事情,而且這種方式強迫持久化類必須實現Hibernate的特定接口,會影響持久化類的可移植性,因此不推薦使用.
8)Interceptor:Interceptor的實現類負責響應持久化類的實例被加載,保存,刪除,更新等事件.
還有一個比較重要的接口Type映射類型接口,用于把對象中的屬性,映射為數據庫中的字段.Type接口提供了各種實現的類.他們代表了Hibernate的映射類型.
1)PrimitiveType類:原始映射類型,映射了JAVA的基本類型.包括ByteType,ShortTyep,IntegerType,LongType,DoubleType,CharacterType,BooleanTyep
2)DateType類:映射了JAVA的日期類型.
3)BinaryType類:映射了Byte[]數字類型.
這里,我們的應用程序不必自己創建Type實例,而是通過Hibernate這個類,訪問它的靜態Type實例.例如Hibernate.STRING的形式訪問StringType實例.還可以實現UserType或者CompositeUserType這兩個接口,來定義用戶自己的映射類型.
還有一類接口是可擴展接口,比如Hibernate的方言抽象類,指定緩存機制的Cache接口等等.這些因為我一直也沒用到過所以就不在這里說明了.想了解它的朋友可以查閱相關的資料.
posted on 2007-05-16 15:10
我心依舊 閱讀(3863)
評論(5) 編輯 收藏