DudoJ是一個基於java的數據持久化框架,但它完全不同於其他的持久化框架,她給系統開發帶來了許多令人振奮的功能。
基本介紹
使用java撰寫SQL腳本能力,SQL函式支持,查詢功能,資料庫移植,多資料庫連線支持,簡單易用的API,自定義對象持久化能力,靈活的用戶定製機制,開放原始碼,
使用java撰寫SQL腳本能力
DudoJ 為您提供了使用java編寫SQL腳本的能力。當前我們的套用數據絕大多數還是存儲在關係資料庫中,在套用中使用SQL語句來運算元據是我們最常用的方式。傳統的方式是在編碼時以硬編碼方式在代碼中嵌入SQL語句。這種方式帶來的副作用是顯而易見的。使用DudoJ做為企業套用的持久層,程式操作的都是java對象,一方面,將您的套用與資料庫有效隔離,另一方面,在編譯期就可檢查對象、對象屬性引用是否正確,而不象JDO一樣要到運行時才能檢查出錯誤。雖然不是什麼重要的功能,但卻能夠提高我們的編碼效率(同樣的藉助IDE的Code Insight 功能可以快速找到對象屬性)。
SQL函式支持
DudoJ 已經實現了常用的字元串函式、數學函式、日期函式,以後還會實現更多的函式。在DudoJ中使用函式,您不必擔心不同資料庫平台函式實現的差異,DudoJ為您提供了統一的函式接口,針對不同的資料庫平台,DudoJ會自動的產生正確的映射。
查詢功能
藉助DudoJ提供的函式功能和使用java撰寫SQL腳本的能力,您可以使用DudoJ框架在您的套用中定義很複雜的查詢。使用DudoJ您可以定義靜態查詢(在設計期將查詢定義為一個類),也可以在運行時生成查詢(動態查詢),甚至允許您在映射檔案中定義查詢,實現任何複雜SQL的查詢功能。
資料庫移植
您是否經歷過將您的套用從一個資料庫平台轉移到另一個資料庫平台?是否為了不同資料庫平台SQL實現的不同而不厭其煩的修改您的代碼?相信許多人都經歷過這些痛苦的時刻。如今,有了DudoJ數據持久化框架,您不必再為這些繁瑣的事情所煩惱。使用DudoJ作為您套用的持久層,可以將您的套用毫無更改的移植到DudoJ支持的任何一個資料庫平台,而不需要對程式代碼做任何的更改。由於時間關係,也由於資料庫平台的種類繁多,存在一些DudoJ當前不支持的資料庫平台,但是DudoJ提供了靈活的擴展機制,在DudoJ的基礎上您可以為您使用的資料庫編寫擴展模組,而這些模組是與套用無關的,您可以在您的不同套用之間重用這些模組。
多資料庫連線支持
DudoJ不但支持多種資料庫平台,而且支持多資料庫平台協同工作。在DudoJ中通過設定配置檔案,允許多個資料庫平台同時工作在DudoJ框架中,資料庫平台的數量沒有限制。DudoJ甚至允許您在多個資料庫平台之間建立數據關係,在進行對象的查、增、刪改時,DudoJ會自動處理不同資料庫連線的數據獲取和更新。
簡單易用的API
自定義對象持久化能力
DudoJ框架提供了用戶自定義對象持久化功能。您只需要為要持久化的對象實現SQLData接口,該對象就能夠做為持久對象的一個屬性值被持久化。對於Map,List,Collection,Set,您不必為這些對象實現SQLData接口(容器中的自定義對象需要實現SQLData接口),DudoJ會自動持久化這些對象。 良好的批量數據處理性能
為了實現通用的功能,各個框架產品都不可避免的要使用反射機制。通常的框架產品在操作對象數據時,對於每個對象的每個每個數據項都會使用反射來讀取或者設定數據,而DudoJ採用了特殊的機制,只在對象初始化時使用反射,在以後的數據讀取和設定時都不再使用反射,對於大批量的數據處理,這種機制能夠在一定程度上提高系統效率。
靈活的用戶定製機制
DudoJ擁有一個靈活的體系結構,允許您對DudoJ框架本身的功能進行擴展,而且DudoJ為您提供了擴展的切入點。通過擴展DudoJ框架,擴展DudoJ框架沒有涉及到的方面,適應您以及您的客戶多樣化的需求。
開放原始碼
DudoJ在GNU LGPL許可協定下發布,所有原始碼公開。