?
开发的产品为了融资,不停得改版,从第一版到现在最新版本,最后发现公司发展方向都变了,有最初电子商务改成VR内容提供者(没办法,要别人钱,就得按照别人的规划的战略走)。本来本章节会放到后面再做讲解,无奈,部门需要做一次培训任务,我就想到拿Java操作MongoDB作为培训内容,开发环境和依赖jar如下:
(1)开发环境:
System:Windows
IDE:eclipse
Database:mongoDB2.6
Maven:apache-maven-3.0.4
(2)开发依赖库:
JavaEE7、mongo-2.6.5.jar、junit-4.11.jar
一、准备工作
1、 首先,下载mongoDB对Java支持的驱动包(我是直接拿maven下载的,文章最后我也会把相应的mongo-2.6.5.jar上传。
MongoDBfor Java的API文档地址为:http://api.mongodb.org/java/2.6.5/
MongoDB for Java相关的操作实例代码:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/
我这里创建的是Maven工程,其pom文件内容如下:
?
4.0.0
com.hth
mongodb
war
0.0.1-SNAPSHOT
mongodb Maven Webapp
http://maven.apache.org
junit
junit
4.11
test
org.mongodb
mongo-java-driver
2.6.5
mongodb
?
如果你的开发环境没有安装maven环境,你可以建立一个JavaProject工程,导入MongoDB的驱动jar包,即可在Java中使用mongoDB,
?
二、Java操作MongoDB示例
在本示例之前你需要启动mongoDB的服务,启动后,下面的程序才能顺利执行;
1、 建立MongoDBDemo.java,完成简单的mongoDB数据库操作
Mongomongo = new Mongo();
这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。
DB db = mongo.getDB(“test”);
这样就获得了一个test的数据库(为mongoDB的默认的数据库),如果mongoDB中没有创建这个数据库也是可以正常运行的。得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。
DBCollection users = db.getCollection("users");
这样就获得了一个DBCollection,它相当于我们数据库的“表”,在MongoDB中叫做集合。
查询所有数据
DBCursor cur = users.find();
while (cur.hasNext()) {
System.out.println(cur.next());
}
完整源码
?
package com.hth.mongodb;
import java.net.UnknownHostException;
import java.util.Iterator;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;
/**
* @ClassName: MongoDBDemo
* @Description: TODO(MongoDB测试)
* @author wangzhao date 2015年2月11日 下午3:56:16
*
*/
public class MongoDBDemo {
public static void main(String[] args) throws UnknownHostException,
MongoException {
Mongo mongo = new Mongo("192.168.26.190", 27017);
for (String dbName : mongo.getDatabaseNames()) {
System.out.println("数据库实例:" + dbName);
}
DB db = mongo.getDB("dreamerkr");
for (String cName : db.getCollectionNames()) {
System.out.println("dreamerkr存在的集合:" + cName);
}
DBCollection webInfo = db.getCollection("web_info");
DBCursor dbCursor = webInfo.find();
while (dbCursor.hasNext()) {
System.out.println("每个文档数据为:" + dbCursor.next());
}
for (Iterator it = dbCursor.iterator(); it.hasNext();) {
System.out.println("每个文档数据为:" + it.next());
}
System.out.println("文档个数为:" + dbCursor.count());
System.out.println("序列化此文档"+JSON.serialize(dbCursor));
}
}
?
2、 完成CRUD操作,首先建立一个MongoDBCRUDTest.java,基本测试代码如下:
?
package com.hth.mongodb;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import org.bson.types.ObjectId;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DB