Morphia 操作 MongoDB.docx

上传人:b****3 文档编号:2806963 上传时间:2022-11-15 格式:DOCX 页数:30 大小:35.52KB
下载 相关 举报
Morphia 操作 MongoDB.docx_第1页
第1页 / 共30页
Morphia 操作 MongoDB.docx_第2页
第2页 / 共30页
Morphia 操作 MongoDB.docx_第3页
第3页 / 共30页
Morphia 操作 MongoDB.docx_第4页
第4页 / 共30页
Morphia 操作 MongoDB.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

Morphia 操作 MongoDB.docx

《Morphia 操作 MongoDB.docx》由会员分享,可在线阅读,更多相关《Morphia 操作 MongoDB.docx(30页珍藏版)》请在冰豆网上搜索。

Morphia 操作 MongoDB.docx

Morphia操作MongoDB

Morphia操作MongoDB

上两篇文章:

介绍到了在MongoDB的控制台完成MongoDB的数据操作、以及通过JavaMongoDB的驱动完成在Java中对MongoDB的操作,通过前两篇文章我们对MongoDB有了全面、深刻的认识和理解。

现在我们就看看利用Morphia库来操作MongoDB。

开发环境:

System:

Windows

IDE:

eclipse、MyEclipse8

Database:

mongoDB

开发依赖库:

JavaEE5、mongo-2.5.3.jar、junit-4.8.2.jar

Email:

hoojo_@

Blog:

一、准备工作

1、首先,下载mongoDB对Java支持的驱动包

驱动包下载地址:

mongoDB对Java的相关支持、技术:

http:

//www.mongodb.org/display/DOCS/Java+Language+Center

驱动源码下载:

在线查看源码:

Morphiajar包下载:

2、下面建立一个JavaProject工程,导入下载下来的驱动包。

即可在Java中使用Morphia,目录如下:

二、Java操作MongoDB示例

在本示例之前你需要启动mongod.exe的服务,在你安装mongoDB的目录中,找到mongod.exe启动服务后,下面的程序才能顺利执行;

1、Java操作mongoDB数据库,操作索引

Mongomongo=newMongo();

这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。

DBdb=mongo.getDB(“test”);

这样就获得了一个test的数据库,如果mongoDB中没有创建这个数据库也是可以正常运行的。

如果你读过上一篇文章就知道,mongoDB可以在没有创建这个数据库的情况下,完成数据的添加操作。

当添加的时候,没有这个库,mongoDB会自动创建当前数据库。

得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。

DBCollectionusers=db.getCollection("users");

这样就获得了一个DBCollection,它相当于我们数据库的“表”。

查询所有数据

DBCursorcur=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_@")

.get();

插入数据

users.insert(user);

可以利用JSON工具来序列化对象数据

JSON.serialize(cur)

完整源码

packagecom.hoo.test;

import.UnknownHostException;

importcom.hoo.entity.User;

importcom.hoo.util.BasicDBObjectUtils;

importcom.mongodb.BasicDBObjectBuilder;

importcom.mongodb.DB;

importcom.mongodb.DBCollection;

importcom.mongodb.DBCursor;

importcom.mongodb.DBObject;

importcom.mongodb.Mongo;

importcom.mongodb.MongoException;

importcom.mongodb.util.JSON;

/**

*function:

Mongo实例对象的相关方法测试

*@authorhoojo

*@createDate2011-5-24下午02:

42:

29

*@fileMongoDBTest.java

*@packagecom.hoo.test

*@projectMongoDB

*@blog

*@emailhoojo_@

*@version1.0

*/

publicclassMongoDBTest{

publicstaticvoidmain(String[]args)throwsUnknownHostException,MongoException{

Mongomg=newMongo();

System.out.println("查询所有的Database的名称");

for(Stringname:

mg.getDatabaseNames()){

System.out.println("dbName:

"+name);

}

System.out.println("查询test库中的所有collection集合(表)名称");

DBdb=mg.getDB("test");

for(Stringname:

db.getCollectionNames()){

System.out.println("collectionName:

"+name);

}

System.out.println("添加测试数据");

DBCollectionusers=db.getCollection("users");

try{

//用自定义BasicDBObjectUtils工具类,将UserEnity对象转换成DBObject

DBObjectuser=BasicDBObjectUtils.castModel2DBObject(newUser("345567","jack",22,"beijin"));

users.insert(user);

//用BasicDBObjectBuilder构建一个DBObject对象

user=BasicDBObjectBuilder.start("id",1546555).append("name","jojo").add("address","gz").append("email","hoojo_@").get();

users.insert(user);

}catch(Exceptione){

e.printStackTrace();

}

System.out.println("游标查询所有users集合数据");

DBCursorcur=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对象

packagecom.hoo.util;

importjava.lang.reflect.Method;

importcom.mongodb.BasicDBObject;

importcom.mongodb.DBObject;

/**

*function:

将Entity/Model转换成DBObject

*@authorhoojo

*@createDate2011-5-30下午01:

53:

08

*@fileBasicDBObjectUtil.java

*@packagecom.hoo.util

*@projectMongoDB

*@blog

*@emailhoojo_@

*@version1.0

*/

publicclassBasicDBObjectUtils{

publicstaticDBObjectcastModel2DBObject(Tentity)throwsException{

Method[]method=entity.getClass().getMethods();

DBObjectdbObject=newBasicDBObject();

for(Methodm:

method){

//System.out.println(m.getName());

if(m.getName().startsWith("get")){

Stringname=m.getName().replace("get","");

for(Methodm2:

method){

if(m2.getName().equals("se

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1