一個輕量級的MongoDB Java開發框架 BuguMongo
BuguMongo是一個輕量級的MongoDB Java開發框架,它的主要功能包括:
- 基于注解的對象-文檔映射(Object-Document Mapping,簡稱ODM)。
- DAO支持。提供了大量常用的DAO方法。
- Query支持。提供了生成查詢的簡便方法。
- 基于注解的Lucene索引。
- 簡單方便的Lucene搜索。支持關鍵詞高亮顯示。
- 功能強大的GridFS文件系統管理。支持文件夾功能,支持文件的重命名、移動、排序等操作。
- 簡單方便的GridFS文件上傳、讀取。支持圖片加水印、圖片壓縮。能用HTTP獲取文件,并能使用HTTP緩存。
使用BuguMongo,可以讓你:
- 用面向對象的編程思維操縱MongoDB數據庫。
- 擺脫底層細節處理,專注于業務邏輯。
- 大大減少代碼量,提高開發效率。
BuguMongo已在多個正式商業項目中使用,并取得了理想的效果。
幫助文檔
BuguMongo的使用非常簡單和直觀,請查看幫助文檔:
版本說明
BuguMongo目前的版本是0.8,于2011-10-19發布,你可以查看版本更新日志。
BuguMongo 0.8使用:
- JDK1.6
- MongoDB Java Driver 2.6.5
- Lucene 3.4
- Log4j記錄日志
MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bjson格式,因此可以存儲比較復雜的數據類型。 Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
它的特點是高性能、易部署、易使用,存儲數據非常方便。主要功能特性有:
- 面向集合存儲,易存儲對象類型的數據。
- 模式自由。
- 支持動態查詢。
- 支持完全索引,包含內部對象。
- 支持查詢。
- 支持復制和故障恢復。
- 使用高效的二進制數據存儲,包括大型對象(如視頻等)。
- 自動處理碎片,以支持云計算層次的擴展性
- 支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。
- 文件存儲格式為BSON(一種JSON的擴展)
- 可通過網絡訪問
所謂“面向集合”(Collenction-Orented),意思是數據被分組存儲在數據集中,被稱為一個集合(Collenction)。每個 集合在數據庫中都有一個唯一的標識名,并且可以包含無限數目的文檔。集合的概念類似關系型數據庫(RDBMS)里的表(table),不同的是它不需要定 義任何模式(schema)。
模式自由(schema-free),意味著對于存儲在mongodb數據庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的文件存儲在同一個數據庫里。
存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標識一個文檔,為字符串類型,而值則可以是各中復雜的文件類型。我們稱這種存儲形式為BSON(Binary Serialized dOcument Format)。
MongoDB服務端可運行在Linux、Windows或OS X平臺,支持32位和64位應用,默認端口為27017。推薦運行在64位平臺,因為MongoDB
在32位模式運行時支持的最大文件尺寸為2GB。
MongoDB把數據存儲在文件中(默認路徑為:/data/db),為提高效率使用內存映射文件進行管理。
Lucene是一套用于全文檢索和搜尋的開源程式庫,由Apache軟件基金會支持和提供。Lucene提供了一個簡單確強大的應用程式接口,能夠做全文索引和搜尋,在Java開發環境里Lucene是一個成熟的免費開放源代碼工具;就其本身而論,Lucene是現在并且是這幾年,最受歡迎的免費java資訊檢索程式庫。人們經常提到資訊檢索程式庫,就像是搜尋引擎,但是不應該將資訊檢索程式庫與網搜索引擎相混淆。
Lucene最初是由Doug Cutting所撰寫的,是一位資深全文索引/檢索專家,曾經是V-Twin搜索引擎的主要開發者,后來在Excite擔任高級系統架構設計師,目前從事 于一些INTERNET底層架構的研究。他貢獻出Lucene的目標是為各種中小型應用程式加入全文檢索功能。