于吉吉的技術(shù)博客

          建造高性能門戶網(wǎng)

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

          What is Morphia?

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

          簡單的來說Morphia與MongoDB的關(guān)系就如Hibernate與關(guān)系數(shù)據(jù)庫的關(guān)系, 是一個實現(xiàn)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導(dǎo)入到工程后,看看mongodb和morphia的初始化

          初始化Mongo(MongoDB Java Api)

          初始化Morphia

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

          對POJO類進行存儲操作

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


          以下說說Morphia與Spring的結(jié)合

          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的應(yīng)用

          DataStrore—查詢語法

          直接ID查詢:

          簡單條件查詢:


          DataStrore—保存\刪除 語法

          保存

          刪除



          Query—復(fù)雜查詢

          Filter方法:

          獲取第一個數(shù)據(jù)


          獲取列表:



          Query—排序,分頁

          排序

          分頁

          UpdateOperaions—更新操作

          執(zhí)行語句


          updateQuery:查詢條件(Class:Query)

          ops:更新操作(Class:UpdateOperations)


          ops( UpdateOperations )參數(shù)的語法:

          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的區(qū)別在哪里  回復(fù)  更多評論
            

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

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 沛县| 蓝山县| 将乐县| 东源县| 马龙县| 丰都县| 烟台市| 久治县| 绵阳市| 吴堡县| 两当县| 尉犁县| 青海省| 靖远县| 平南县| 清新县| 南召县| 龙门县| 沂水县| 霍邱县| 金湖县| 宣武区| 巴南区| 镇平县| 巨鹿县| 普格县| 沛县| 凭祥市| 涞源县| 得荣县| 稷山县| 潮州市| 临夏市| 河津市| 微山县| 思南县| 珠海市| 大荔县| 临夏市| 旺苍县| 连州市|