NoSQL 之 Morphia 操作 MongoDB
-
资源ID:54810757
资源大小:30.76KB
全文页数:24页
- 资源格式: DOCX
下载积分:0金贝
快捷下载
账号登录下载
微信登录下载
微信扫一扫登录
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
|
下载须知 | 常见问题汇总
|
NoSQL 之 Morphia 操作 MongoDB
NoSQLNoSQL 之之 MorphiaMorphia 操作操作 MongoDBMongoDB介绍到了在 MongoDB 的控制台完成 MongoDB 的数据操作、以及通过 Java MongoDB 的驱动完成在 Java 中对 MongoDB 的操作,通过前两篇文章我们对 MongoDB 有了全面、深刻的认识和理解。现在我们就看看利用 Morphia 库来操作 MongoDB。开发环境:System:WindowsIDE:eclipse、MyEclipse 8Database:mongoDB开发依赖库:JavaEE5、mongo-2.5.3.jar、junit-4.8.2.jar, morphia-0.99.jarEmail:hoojo_126.comBlog:http:/blog.csdn.net/IBM_hoojohttp:/hoojo.cnblogs.com/一、准备工作1、 首先,下载 mongoDB 对 Java 支持的驱动包驱动包下载地址:https:/github.com/mongodb/mongo-java-driver/downloadsmongoDB 对 Java 的相关支持、技术:http:/www.mongodb.org/display/DOCS/Java+Language+Center驱动源码下载:https:/download.github.com/mongodb-mongo-java-driver-r2.6.1-7-g6037357.zip在线查看源码:https:/github.com/mongodb/mongo-java-driverMorphia jar 包下载:http:/code.google.com/p/morphia/downloads/list2、 下面建立一个 JavaProject 工程,导入下载下来的驱动包。即可在 Java 中使用Morphia,目录如下:二、Java 操作 MongoDB 示例在本示例之前你需要启动 mongod.exe 的服务,在你安装 mongoDB 的目录中,找到mongod.exe 启动服务后,下面的程序才能顺利执行;1、Java 操作 mongoDB 数据库,操作索引Mongo mongo = new Mongo();这样就创建了一个 MongoDB 的数据库连接对象,它默认连接到当前机器的 localhost 地址,端口是 27017。天地棋牌 http:/www.dadiqipaigw.cnDB db = mongo.getDB(“test”);这样就获得了一个 test 的数据库,如果 mongoDB 中没有创建这个数据库也是可以正常运行的。如果你读过上一篇文章就知道,mongoDB 可以在没有创建这个数据库的情况下,完成数据的添加操作。当添加的时候,没有这个库,mongoDB 会自动创建当前数据库。得到了 db,下一步我们要获取一个“聚集集合 DBCollection”,通过 db 对象的getCollection 方法来完成。DBCollection users = db.getCollection(“users“);这样就获得了一个 DBCollection,它相当于我们数据库的“表”。查询所有数据DBCursor cur = users.find();while (cur.hasNext() System.out.println(cur.next();用 BasicDBObjectBuilder,向 users 对象中添加数据user = BasicDBObjectBuilder.start(“id“, 1546555).append(“name“, “jojo“).add(“address“, “gz“).append(“email“, “hoojo_126.com“).get();插入数据users.insert(user);可以利用 JSON 工具来序列化对象数据JSON.serialize(cur)完整源码package com.hoo.test;import java.net.UnknownHostException;import com.hoo.entity.User;import com.hoo.util.BasicDBObjectUtils;import com.mongodb.BasicDBObjectBuilder;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;import com.mongodb.Mongo;import com.mongodb.MongoException;import com.mongodb.util.JSON;/* function: Mongo 实例对象的相关方法测试* author hoojo* createDate 2011-5-24 下午 02:42:29* file MongoDBTest.java* package com.hoo.test* project MongoDB* blog http:/blog.csdn.net/IBM_hoojo* email hoojo_126.com* version 1.0*/public class MongoDBTest public static void main(String args) throws UnknownHostException, MongoException Mongo mg = new Mongo();System.out.println(“查询所有的 Database 的名称“);for (String name : mg.getDatabaseNames() System.out.println(“dbName: “ + name);System.out.println(“查询 test 库中的所有 collection 集合(表)名称“);DB db = mg.getDB(“test“);for (String name : db.getCollectionNames() System.out.println(“collectionName: “ + name);System.out.println(“添加测试数据“);DBCollection users = db.getCollection(“users“);try / 用自定义 BasicDBObjectUtils 工具类,将 User Enity 对象转换成DBObjectDBObject user = BasicDBObjectUtils.castModel2DBObject(new User(“345567“, “jack“, 22, “beijin“);users.insert(user);/ 用 BasicDBObjectBuilder 构建一个 DBObject 对象user = BasicDBObjectBuilder.start(“id“, 1546555).append(“name“, “jojo“).add(“address“, “gz“).append(“email“, “hoojo_126.com“).get();users.insert(user); catch (Exception e) e.printStackTrace();System.out.println(“游标查询所有 users 集合数据“);DBCursor cur = users.find();while (cur.hasNext() System.out.println(cur.next();System.out.println(“查询游标相关内容“);System.out.println(cur.count();System.out.println(cur.getCursorId();System.out.println(cur.getOptions();System.out.println(cur.getQuery();System.out.println(cur.getSizes().listIterator();System.out.println(cur.itcount();/System.out.println(cur.length();System.out.println(cur.size();System.out.println(cur.numGetMores();System.out.println(cur.curr();/System.out.println(cur.toArray().get(0);System.out.println(“显示游标查询到的所有内容:“ + JSON.serialize(cur);工具类,将带有 getter、setter 方法的 Java 类序列化成 DBObject 对象package com.hoo.util;import java.lang.reflect.Method;import com.mongodb.BasicDBObject;import com.mongodb.DBObject;/* function: 将 Entity/Model 转换成 DBObject* author hoojo* createDate 2011-5-30 下午 01:53:08* file BasicDBObjectUtil.java* package com.hoo.util* project MongoDB* blog http:/blog.csdn.net/IBM_hoojo* email hoojo_126.com* version 1.0*/publicclass BasicDBObjectUtils public static DBObject castModel2DBObject(T entity) throws Exception Method method = entity.getClass().getMethods();DBObject dbObject = new BasicDBObject();for (Method m : method) /System.out.println(m.getName();if (m.getName().startsWith(“get“) String name = m.getName().replace(“get“, “);for (Method m2 : method) if (m2.getName().equals(“set“ + name) name = name.substring(0, 1).toLowerCase() + name.substring(1);Object returnVal = m.invoke(entity, new Object );if (returnVal != null) /System.out.println(name + “ : “ + m.invoke(shipping, new Object );dbObject.put(name, returnVal);System.out.println(“dbObject: “ + dbObject);return dbObject;2、 完成索引操作,首先建立一个 MongoDB4IndexTest.java,基本测试代码如下:package com.ho