`

java 集成mongo

 
阅读更多

记录一下Eclipse集成 Mongo

1、pom.xml中增加依赖

 <!--  mongo -->
  <dependency>
   <groupId>org.mongodb</groupId>
   <artifactId>mongo-java-driver</artifactId>
   <version>2.12.4</version>
  </dependency>

2、代码:

package com.iflytek.mongotest.dao;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.lang.math.NumberUtils;
import org.bson.BSONObject;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.ServerAddress;
import com.mongodb.util.JSON;

@Component
public class MongoDao implements InitializingBean {
	/**
	 * 集合名称
	 */
	private MongoClient mongoClient;

	String dbName;

	String collectionName;

	@Override
	public void afterPropertiesSet() throws Exception {
		dbName = Cfg.get("sendsong.mongo.db");
		collectionName = Cfg.get("sendsong.mongo.collection");
		int connections = NumberUtils.toInt(
				Cfg.get("sendsong.mongo.connections"), 20);
		int timeout = NumberUtils.toInt(Cfg.get("sendsong.mongo.connections"),
				3000);
		int waitNumber = NumberUtils.toInt(
				Cfg.get("sendsong.mongo.waitNumber"), 100);
		int maxwait = NumberUtils
				.toInt(Cfg.get("sendsong.mongo.maxwait"), 5000);

		MongoClientOptions.Builder build = new MongoClientOptions.Builder();
		build.connectionsPerHost(connections);
		build.connectTimeout(timeout);
		build.threadsAllowedToBlockForConnectionMultiplier(waitNumber);
		build.maxWaitTime(maxwait);
		MongoClientOptions options = build.build();

		String url = Cfg.get("sendsong.mongo.url");
		List<ServerAddress> addresses = new ArrayList<ServerAddress>();
		String[] addressStr = url.split(",");
		for (String str : addressStr) {
			String[] re = str.split(":");
			ServerAddress address = new ServerAddress(re[0],
					Integer.parseInt(re[1]));
			addresses.add(address);
		}
		mongoClient = new MongoClient(addresses, options);

	}

	/**
	 * 插入集合
	 * @param branchId
	 * @param sendsongId
	 */
	public void insertSendsong(String branchId, long sendsongId) {
		DB db = mongoClient.getDB(dbName);
		DBCollection collection = db.getCollection(collectionName);
		DBObject object = new BasicDBObject();
		object.put("sendsongid", sendsongId);
		object.put("branchid", branchId);
		object.put("status", SendSongStatus.ADD_TASK_SUCCESS);
		object.put("createtime", System.currentTimeMillis());
		collection.insert(object);
	}

	/**
	 * 查询所有集合
	 * @param brachid
	 * @param sendsongId
	 */
	public void querSendsong(String brachid, long sendsongId) {
		DB db = mongoClient.getDB(dbName);
		DBCollection collection = db.getCollection("sendsonginfo");
		DBCursor cur = collection.find();
		while (cur.hasNext()) {
			System.out.println(cur.next());

		}
		System.out.println(cur.count());
		System.out.println(cur.getCursorId());
		System.out.println(JSON.serialize(cur));
	}

	/**
	 * 查询单个集合
	 * @param brachid
	 * @param sendsongId
	 */
	public void querySingle(String brachid, long sendsongId) {
		DB db = mongoClient.getDB(dbName);
		DBCollection collection = db.getCollection("sendsonginfo");
		Map<String,Object> map=new HashMap<String, Object>();
		map.put("sendsongid", 100);
		map.put("createtime", 1432L);
		DBCursor cur = collection.find(new BasicDBObject(map));
		while (cur.hasNext()) {
			System.out.println(cur.next());
		}
	}
	
	/**
	 * 根据条件删除集合中的元素
	 * @param brachid
	 * @param sendsongId
	 */
	public void delCollect() {
		DB db = mongoClient.getDB(dbName);
		DBCollection collection = db.getCollection("sendsonginfo");
		Map<String,Object> map=new HashMap<String, Object>();
		map.put("sendsongid", 100);
		map.put("createtime", 1432L);
		collection.remove(new BasicDBObject(map));
		//collection.drop(); 删除集合里所有的元素
	}
	
	
	//更新集合
	public void updateCollect()
	{
		DB db = mongoClient.getDB(dbName);
		DBCollection collection = db.getCollection("sendsonginfo");
		Map<String,Object> map=new HashMap<String, Object>();
		map.put("sendsongid", 100);
		map.put("createtime", 1431L);
		Map<String,Object> map1=new HashMap<String, Object>();
		map.put("sendsongid", 100);
		map.put("createtime", 1432L);
		
		//upsert when true, inserts a document if no document matches the update query criteria  true:如果数据库里没有,则插入一条 
		//multi when true, updates all documents in the collection that match the update query criteria,  true: 更新所有的记录  false:只更新第一条
		collection.update(new BasicDBObject(map1), new BasicDBObject(map),true,false);
	}
	
	
	

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics