于吉吉的技術博客

          建造高性能門戶網

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            65 隨筆 :: 6 文章 :: 149 評論 :: 0 Trackbacks
          先感謝同事梁員外<MongoDB with Morphia>的技術分享,下面是一些相關的筆記,當然啦,在應用Morphia之前需要有MongoDB的使用經驗.

          What is Morphia?

          Morphia is a lightweight type-safe library for mapping your Java objects to/from MongoDB

          簡單的來說Morphia與MongoDB的關系就如Hibernate與關系數據庫的關系, 是一個實現Java對象到MongoDB雙向映射的類庫。

          下面是摘自Morphia官方的簡介,帶有一定的廣告性,呵呵

          Easy to use, and very lightweight; reflection is used once per type and cached.

          Annotations describe mapping behavior; there are no XML files.

          Provides Datastore and DAO<T,V> data access abstractions, or roll your own...

          Type-safe Query support

          Works with Guice, Spring, and other DI frameworks.

          Has many extension points to build on

          Does not store Null/Empty values (by default).

          GWT support (entities are just POJOs) --(GWT ignores annotations)

          Advanced mapper that allows raw conversion, void toObject(DBObject) or DBObject fromObject(Object)

          下載 morphia.jar


          將jar導入到工程后,看看mongodb和morphia的初始化

          初始化Mongo(MongoDB Java Api)

          初始化Morphia

          在mapPackage需要制定一系列的pojo類

          對POJO類進行存儲操作

          以上代碼創建了兩個領域Hotel,Address,前者為實體存在,有自己的生命周期,后者則為內嵌在實體之中,沒有獨立的生命周期, 關于這些注解的詳細含義,以及Morphia提供的其他注解,請參見其官方文檔。


          以下說說Morphia與Spring的結合

          com.***.cvus.dao.MorphiaBean 是自己封裝的一個SpringBean類

          public class MorphiaBean extends Morphia {
              …
              
          private Mongo mongo = null;
              
          private String dbName = null;
              
          public Datastore getDataStore() {
                  
          if (this.mongo == null || this.dbName == null) {
                      
          return null;
                  }
                  
          return createDatastore(mongo, dbName);
              }

          }

          MorphiaBean的應用

          DataStrore—查詢語法

          直接ID查詢:

          簡單條件查詢:


          DataStrore—保存\刪除 語法

          保存

          刪除



          Query—復雜查詢

          Filter方法:

          獲取第一個數據


          獲取列表:



          Query—排序,分頁

          排序

          分頁

          UpdateOperaions—更新操作

          執行語句


          updateQuery:查詢條件(Class:Query)

          ops:更新操作(Class:UpdateOperations)


          ops( UpdateOperations )參數的語法:

          http://code.google.com/docreader/#p=morphia&s=morphia&t=Updating


          @Embedded & @Reference

          http://code.google.com/docreader/#p=morphia&s=morphia&t=EmbeddedAnnotation

          http://code.google.com/docreader/#p=morphia&s=morphia&t=ReferenceAnnotation


          ----------------------------------------

          by 陳于喆 

          QQ:34174409
          Mail: chenyz@corp.netease.com

          posted on 2010-09-16 17:41 陳于喆 閱讀(13135) 評論(3)  編輯  收藏 所屬分類: NoSQL

          評論

          # re: MongoDB with Morphia 2010-09-18 20:14 來如風
          沒看出來與hibernate的區別在哪里  回復  更多評論
            

          # re: MongoDB with Morphia 2010-10-08 19:23 來如風
          最主要沒看出來了,這玩意用來干啥比較合適  回復  更多評論
            

          # re: MongoDB with Morphia 2011-11-22 10:18 Yinhex
          嗎啡如何做MapReduce?沒有看到相關的資料  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 扶风县| 六安市| 奎屯市| 庆阳市| 威海市| 沅陵县| 富宁县| 织金县| 昂仁县| 隆昌县| 诸城市| 江门市| 湖州市| 四子王旗| 墨江| 监利县| 吉林省| 萨迦县| 六安市| 通江县| 泰州市| 花垣县| 和政县| 新乡市| 元朗区| 肥东县| 大冶市| 贵州省| 长白| 凤山市| 石景山区| 四子王旗| 汝城县| 上思县| 留坝县| 定西市| 稻城县| 西华县| 奉贤区| 陵水| 雅江县|