我們一旦註解了我們的對象,將有很大繁重的工作要做。現在我們要做的就是需要創建一個Morphia實例,告訴Morphia我們要映射那些類,然後我們就可以
開始在Mongo文檔和Java對象之間映射了。
Create a Morphia instance(創建一個Morphia實例)
首先你要做的就是創建一個Morphia實例,並且告訴他你要映射的類。建議你僅創建一次Morphia實例,重複使用。
- import com.google.code.morphia.Morphia;
- ...
- Morphia morphia = new Morphia();
- morphia.map(BlogEntry.class)
- .map(Author.class);
- ...
你映射的任何一個類都將會進行驗證,如果由於某些原因你映射的類不合法將會拋出一個MappingException異常。
你也可以告訴Morphia去掃描一個包,映射包中的所有類。
- ...
- morphia.mapPackage("my.package.with.only.mongo.entities");
- ...
手動的使用Morphia映射到DBObjects通過java驅動直接進行交互。一下是一些如何使用他的實例。
Mapping a java for Persistence
手動的使用Morphia映射到DBObjects通過java驅動直接進行交互。這是一個實例。
讓我們說我們有一個博客實例對象,我們想把它保存到Mongo數據庫中的一個容器中。我們僅僅調用Morphia中的toDBObject()方法,把java對象傳入。
我們可以把返回的DBObject對象直接保存到Mongo中。
- Morphia morphia = ...;
- Mongo mongo = ...;
- DB db = mongo.getDB("BlogSite");
- BlogEntry blogEntry = ...; // this is our annotated object
- // map the blog entry to a Mongo DBObject
- DBObject blogEntryDbObj = morphia.toDBObject(blogEntry);
- // and then save that DBObject in a Mongo collection
- db.getCollection("BlogEntries").save(blogEntryDbObj);
Retrieving a java from MongoDB(從Mongo中回覆一個Java對象)
現在讓我們看看另一個方法:創建一個Java對象從Mongo數據庫中的一個文檔。這也非常簡單。我們僅僅調用Morphia中的fromDBObject()方法即可,傳入要返回的DBObject對象。
- Morphia morphia = ...;
- Mongo mongo = ...;
- DB db = mongo.getDB("BlogSite");
- String blogEntryId = ...; // the ID of the blog entry we want to load
- // load the DBObject from a Mongo collection
- BasicDBObject blogEntryDbObj = (BasicDBObject) db.getCollection("BlogEntries").findOne(new BasicDBObject("_id", new ObjectId(blogEntryId));
- // and then map it to our BlogEntry object
- BlogEntry blogEntry = morphia.fromDBObject(BlogEntry.class, blogEntryDbObj);
使用Morphia管理你的Mongdo中的Java對象的非常清楚的方法是使用DAO 支持。那個方法抽象Mongo和Morphia在一個數據訪問對象(DAO)內部,所以你的業務邏輯不用依賴Morphia。