先感謝同事梁員外<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)
初始化Mongo(MongoDB Java Api)
以下說說Morphia與Spring的結(jié)合
直接ID查詢:
保存


Query—復(fù)雜查詢
Filter方法:



Query—排序,分頁
排序
執(zhí)行語句

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
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)
將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);
}
…
}
…
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