1. 程式人生 > >MongoDB學習(八) 使用開源orm框架操作MongoDB -- Morphia

MongoDB學習(八) 使用開源orm框架操作MongoDB -- Morphia

  • @Id 註釋指示Morphia哪個欄位用作文件 ID。如果試圖持久儲存物件(其 @Id 註釋的欄位為 null),則Morphia會自動生成 ID 值。  @Entity   @Entity 註釋是必需的。其聲明瞭在專用MongoDB集合上該類作為文件將持久儲存。在預設情況下,Morphia使用類名稱來命名集合。  @Embedded  @Embedded註釋說明Morphia將此物件例項嵌入到另一個物件中去。而不單獨的放到一個MongoDB集合。  @Reference   @Reference 註釋說明物件是對另外一個集合中的文件的引用。在從MongoDB集合中載入物件時,Morphia遵循著這些引用來建立物件關係。  @Indexed   類屬性標記@Indexed註釋,表明為此屬性增加索引。  @Property  類屬性標記@Property註釋,表明為此屬性在MongoDB資料庫取一個別名。  @Transient  類屬性標記@Transient註釋則表明這個欄位將不被持久化到資料庫。  4. Morphia程式設計模型 
  • 1. 定義被持久類 @Entity  classMyEntity {  @Id  ObjectId id; String name;  }  2.
  • 初始化morphia  Mongo mongo = new Mongo("localhost");//連線到本地mongoDB資料庫  Morphiamorphia = new Morphia();  morphia.mapPackage("MyEntity");//
  • 告訴Morphia對映哪些類 Datastore ds = morphia.createDatastore(mongo ,"myDB");//建立名為“myDB”資料庫,
  • mongo最好使用單例項模式  ds.ensureIndexes(); //在標記為@Id的類屬性上建立索引  ds.ensureCaps(); //設定預設的mongoDB集合容量  3. 儲存被持久化類  MyEntity e = ...;  ds.save(e);//將MyEntity物件持久化到mongoDB資料庫中  4. 查詢  MyEntity e =ds.find(MyEntity.class).get();//通過型別取的第一個資料項 MyEntitye=ds.find(MyEntity.class).field("name")
    Datastore介面把Java物件儲存到MongoDB或從MongoDB中訪問Java物件提供了安全型別的方法。它提供了get/find/save/delete方法為你操作Java物件。