Mongodb 的ORM框架 Morphia 之 使用Morphia(映射对象) .

   Mapping Objects(映射对象)

           我们一旦注解了我们的对象,将有很大繁重的工作要做。现在我们要做的就是需要创建一个Morphia实例,告诉Morphia我们要映射那些类,然后我们就可以

     开始在Mongo文档和Java对象之间映射了。

             Create a Morphia instance(创建一个Morphia实例)

                  首先你要做的就是创建一个Morphia实例,并且告诉他你要映射的类。建议你仅创建一次Morphia实例,重复使用。

                    

  1. import com.google.code.morphia.Morphia;  
  2. ...  
  3. Morphia morphia = new Morphia();  
  4. morphia.map(BlogEntry.class)  
  5.     .map(Author.class);  
  6. ...  

           你映射的任何一个类都将会进行验证,如果由于某些原因你映射的类不合法将会抛出一个MappingException异常。

           你也可以告诉Morphia去扫描一个包,映射包中的所有类。

           

  1. ...  
  2. morphia.mapPackage("my.package.with.only.mongo.entities");  
  3. ...  
        Advanced Usage(高级应用)

               手动的使用Morphia映射到DBObjects通过java驱动直接进行交互。一下是一些如何使用他的实例。

         Mapping a java for Persistence

              手动的使用Morphia映射到DBObjects通过java驱动直接进行交互。这是一个实例。

           让我们说我们有一个博客实例对象,我们想把它保存到Mongo数据库中的一个容器中。我们仅仅调用Morphia中的toDBObject()方法,把java对象传入。

           我们可以把返回的DBObject对象直接保存到Mongo中。

               

  1. Morphia morphia = ...;  
  2. Mongo mongo = ...;  
  3. DB db = mongo.getDB("BlogSite");  
  4.   
  5. BlogEntry blogEntry = ...; // this is our annotated object   
  6.   
  7. // map the blog entry to a Mongo DBObject   
  8. DBObject blogEntryDbObj = morphia.toDBObject(blogEntry);  
  9.   
  10. // and then save that DBObject in a Mongo collection   
  11. db.getCollection("BlogEntries").save(blogEntryDbObj);  
    现在我们的博客实例对象已经保存到了Mongo中。

       Retrieving a java from MongoDB(从Mongo中回复一个Java对象)

         现在让我们看看另一个方法:创建一个Java对象从Mongo数据库中的一个文档。这也非常简单。我们仅仅调用Morphia中的fromDBObject()方法即可,传入要返回的DBObject对象。

          

  1. Morphia morphia = ...;  
  2. Mongo mongo = ...;  
  3. DB db = mongo.getDB("BlogSite");  
  4.   
  5. String blogEntryId = ...; // the ID of the blog entry we want to load   
  6.   
  7. // load the DBObject from a Mongo collection   
  8. BasicDBObject blogEntryDbObj = (BasicDBObject) db.getCollection("BlogEntries").findOne(new BasicDBObject("_id"new ObjectId(blogEntryId));  
  9.   
  10. // and then map it to our BlogEntry object   
  11. BlogEntry blogEntry = morphia.fromDBObject(BlogEntry.class, blogEntryDbObj);  
  就是这样!Morphia移除了所有的容易出错的代码,你需要手动的映射到/从你的Java对象。

  使用Morphia管理你的Mongdo中的Java对象的非常清楚的方法是使用DAO 支持。那个方法抽象Mongo和Morphia在一个数据访问对象(DAO)内部,所以你的业务逻辑不用依赖Morphia。

     原文链接:http://code.google.com/p/morphia/wiki/MappingObjects

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值