NoSQL 之 Morphia 操作 MongoDB

上传人:m**** 文档编号:54810757 上传时间:2018-09-19 格式:DOCX 页数:24 大小:30.76KB
返回 下载 相关 举报
NoSQL 之 Morphia 操作 MongoDB_第1页
第1页 / 共24页
NoSQL 之 Morphia 操作 MongoDB_第2页
第2页 / 共24页
NoSQL 之 Morphia 操作 MongoDB_第3页
第3页 / 共24页
NoSQL 之 Morphia 操作 MongoDB_第4页
第4页 / 共24页
NoSQL 之 Morphia 操作 MongoDB_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《NoSQL 之 Morphia 操作 MongoDB》由会员分享,可在线阅读,更多相关《NoSQL 之 Morphia 操作 MongoDB(24页珍藏版)》请在金锄头文库上搜索。

1、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, mor

2、phia-0.99.jarEmail:hoojo_Blog:http:/ 首先,下载 mongoDB 对 Java 支持的驱动包驱动包下载地址:https:/ 对 Java 的相关支持、技术:http:/www.mongodb.org/display/DOCS/Java+Language+Center驱动源码下载:https:/ jar 包下载:http:/ 下面建立一个 JavaProject 工程,导入下载下来的驱动包。即可在 Java 中使用Morphia,目录如下:二、Java 操作 MongoDB 示例在本示例之前你需要启动 mongod.exe 的服务,在你安装 mongoDB 的

3、目录中,找到mongod.exe 启动服务后,下面的程序才能顺利执行;1、Java 操作 mongoDB 数据库,操作索引Mongo mongo = new Mongo();这样就创建了一个 MongoDB 的数据库连接对象,它默认连接到当前机器的 localhost 地址,端口是 27017。天地棋牌 http:/DB db = mongo.getDB(“test”);这样就获得了一个 test 的数据库,如果 mongoDB 中没有创建这个数据库也是可以正常运行的。如果你读过上一篇文章就知道,mongoDB 可以在没有创建这个数据库的情况下,完成数据的添加操作。当添加的时候,没有这个库,m

4、ongoDB 会自动创建当前数据库。得到了 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 = Bas

5、icDBObjectBuilder.start(“id“, 1546555).append(“name“, “jojo“).add(“address“, “gz“).append(“email“, “hoojo_“).get();插入数据users.insert(user);可以利用 JSON 工具来序列化对象数据JSON.serialize(cur)完整源码package com.hoo.test;import .UnknownHostException;import com.hoo.entity.User;import com.hoo.util.BasicDBObjectUtils;imp

6、ort 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-2

7、4 下午 02:42:29* file MongoDBTest.java* package com.hoo.test* project MongoDB* blog http:/ email hoojo_* 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 na

8、me : 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

9、(“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

10、(“address“, “gz“).append(“email“, “hoojo_“).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.ou

11、t.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(c

12、ur.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 转换

13、成 DBObject* author hoojo* createDate 2011-5-30 下午 01:53:08* file BasicDBObjectUtil.java* package com.hoo.util* project MongoDB* blog http:/ email hoojo_* version 1.0*/publicclass BasicDBObjectUtils public static DBObject castModel2DBObject(T entity) throws Exception Method method = entity.getClass()

14、.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.

15、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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 数据库

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号