java mongo操作

 一、安装java驱动

                 java驱动是一个叫mongo-java-driver-3.2.2.jar包

 maven配置

                 

<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();
	}
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值