设为首页 加入收藏

TOP

NoSQL 之 Morphia 操作 MongoDB (六)
2014-11-24 07:39:20 来源: 作者: 【 】 浏览:16
Tags:NoSQL Morphia 操作 MongoDB
ilder.start("sex", true).get()));
print("getMapper: " + morphia.getMapper());
print("isMapped: " + morphia.isMapped(User.class));

}

/**
* function: 对Mapper对象相关操作
* @author hoojo
* @createDate 2012-2-16下午10:20:38
*/
@Test
public void testMapper() {
Mapper mapper = morphia.getMapper();
// 添加对象映射
print("addMappedClass: " + mapper.addMappedClass(User.class));
//print(mapper.addMappedClass(mapper.addMappedClass(User.class));

// 创建实体缓存
print("createEntityCache: " + mapper.createEntityCache());
print(mapper.getCollectionName("myTestDB"));
print(mapper.getConverters());
User user = new User(System.currentTimeMillis(), "jackson", true, 22, null);
user.setId(1306814012734L);
print(mapper.getId(user));

for (EntityInterceptor ei : mapper.getInterceptors()) {
System.out.println("EntityInterceptor: " + ei);
}

// 查询主键
print("getKey: " + mapper.getKey(user));
// 所有已经映射的class
for (MappedClass mc : mapper.getMappedClasses()) {
System.out.println("getMappedClasses: " + mc);
}

print("mcMap: " + mapper.getMCMap());

print("getOptions: " + mapper.getOptions());
print("keyToRef: " + mapper.keyToRef(mapper.getKey(user)));
print("refToKey: " + mapper.refToKey(mapper.keyToRef(mapper.getKey(user))));
}

/**
* function: 实体缓存
* @author hoojo
*/
@Test
public void testEntityCache() {
EntityCache ec = morphia.getMapper().createEntityCache();
print("EntityCache: " + ec);
Datastore ds = morphia.createDatastore(mongo, "myTestDB");
User user = new User(System.currentTimeMillis(), "jackson", true, 22, null);
user.setId(1306814012734L);

// 添加实体
ec.putEntity(ds.getKey(user), user);
// 代理
ec.putProxy(ds.getKey(user), user);

print("getKey: " + ds.getKey(user));
print("getProxy: " + ec.getProxy(ds.getKey(user)));
print("getEntity: " + ec.getEntity(ds.getKey(user)));

print(ec.exists(ds.getKey(user)));

print("stats: " + ec.stats());
}

@After
public void destory() {
mongo = null;
morphia = null;
System.gc();
}
}

四、利用Morphia完成对Datastore对象的CRUD操作
1、 首先添加如下准备代码,随后的方法直接添加到该文件中即可

package com.hoo.test.ds;

import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.google.code.morphia.Datastore;
import com.google.code.morphia.Key;
import com.google.code.morphia.Morphia;
import com.google.code.morphia.query.UpdateOperations;
import com.hoo.entity.User;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

/**
* function: Datastore增删改查操作
* @author hoojo
* @createDate 2011-5-31下午06:29:04
* @fileDatastore DatastoreTest.java
* @package com.hoo.test.ds
* @project Morphia
* @blog http://blog.csdn.net/IBM_hoojo
* @email hoojo_@126.com
* @version 1.0
*/
public class Datas
首页 上一页 3 4 5 6 7 8 9 下一页 尾页 6/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇NOSQL们背后的共有原则 下一篇NoSQL的特点

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·HyperText Transfer (2025-12-26 07:20:48)
·半小时搞懂 HTTP、HT (2025-12-26 07:20:42)
·CPython是什么?PyPy (2025-12-26 06:50:09)
·Python|如何安装seab (2025-12-26 06:50:06)
·python要学习数据分 (2025-12-26 06:50:03)