一、安装java驱动
java驱动是一个叫mongo-java-driver-3.2.2.jar包
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.2.2</version>
</dependency>
下载地址:具体版本可自行选择下载 http://mvnrepository.com/artifact/org.mongodb/mongo-java-driver
二、java操作Mongodb
java操作Mongodb常用的几个类:
Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等
DB:对应一个数据库,可以用来建立集合等操作
DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等
DBObject接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,是key-value的数据结构,用起来和HashMap是基本一致的。
DBCursor:用来遍历取得的数据,实现了Iterable和Iterator
三,工具类
下面是我测试使用的工具类,包含几个测试方案,
package util;
import java.util.List;
import java.util.Set;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.WriteConcern;
/**
* @Description:
* @author:
* @date 2016-5-3 上午8:58:21
* @version
*/
@SuppressWarnings("deprecation")
public class MongoUtil {
private static Mongo mongo;
private static DB db;
static{
mongo = new Mongo("192.168.1.109",27017);
}
public static Mongo getMong(){
return mongo;
}
public static DB getDB(){
if(db==null){
db = mongo.getDB("");
}
return db;
}
/**
* 获取所有数据库实例
*/
public void testGetDBS() {
List<String> dbnames = this.mongo.getDatabaseNames();
for (String dbname : dbnames) {
System.out.println("dbname:" + dbname);
}
}
/**
* 添加数据库
*/
public void addDB(){
DB mydb = this.mongo.getDB("myMongo");//没有则自动创建
DBCollection collection=mydb.getCollection("user");//创建集合
BasicDBObject doc = new BasicDBObject();
doc.put("name", "MongoDB");
doc.put("type", "database");
doc.put("count", 1);
collection.insert(doc);//插入数据
System.out.println("数据库列表:"+ this.mongo.getDatabaseNames());
}
/**
* 删除数据库
*/
public void dropDB(){
System.out.println("数据库列表:"+ this.mongo.getDatabaseNames());
this.mongo.dropDatabase("myMongo");
System.out.println("数据库列表:"+ this.mongo.getDatabaseNames());
}
/**
* 查询所有表名
*/
public void getAllCollections() {
Set<String> colls = this.mongo.getDB("myMongo").getCollectionNames();
for (String s : colls) {
System.out.println(s);
}
}
/**
* 删除集合
*/
public void dropCollection() {
this.mongo.getDB("myMongo").getCollection("user").drop();
}
/**
* 查询所有结果
*/
public void getAllDocuments() {
DBCursor cursor = this.mongo.getDB("myMongo").getCollection("user").find();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
}
/**
* 添加记录
*/
public void addDate(){
DBCollection coll = this.mongo.getDB("myMongo").getCollection("user");
BasicDBObject doc = new BasicDBObject();
doc.put("name", "星星");
doc.put("type", "测试");
doc.put("count", 1);
BasicDBObject info = new BasicDBObject();
info.put("x", 2015);
info.put("y", 2016);
doc.put("info", info);
coll.insert(doc);
// 设定write concern,以便操作失败时得到提示
coll.setWriteConcern(WriteConcern.SAFE);
}
public static void main(String[] args) {
MongoUtil mongoUtil = new MongoUtil();
// mongoUtil.testGetDBS();
// mongoUtil.addDB();
// mongoUtil.dropDB();
// mongoUtil.getAllCollections();
// mongoUtil.dropCollection();
// mongoUtil.getAllCollections();
mongoUtil.getAllDocuments();
// mongoUtil.addDate();
}
}