`

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

}

 

分享到:
评论

相关推荐

    spring集成mongo所需jar

    首先,"spring集成mongo所需jar"指的是为了在Spring项目中使用MongoDB,我们需要引入特定的Java库。这些jar文件通常包括Spring Data MongoDB模块和MongoDB Java驱动程序。Spring Data MongoDB提供了一套易于使用的...

    java 执行cmd命令及mongodb脚本

    Java执行CMD命令及MongoDB脚本是开发过程中常见的任务,特别是在集成系统或者自动化运维场景下。下面将详细讲解这两个主题。 一、Java执行CMD命令 在Java中,我们可以使用Runtime类或ProcessBuilder类来执行操作...

    java操作 mongo DB 数据库例子

    这篇博客"java操作mongo DB数据库例子"提供了使用Java与MongoDB交互的示例代码,对于学习如何在Java应用中集成MongoDB非常有帮助。MongoDB的主要优势包括灵活的数据模型、高性能以及易于扩展性。 首先,我们需要...

    mongodb driver 集成mongo和mongodb扩展 log.php 发送日志类

    "集成mongo和mongodb扩展"通常是指在代码中同时使用了旧的mongo扩展和新的mongodb扩展。虽然不推荐,但在过渡期间可能有必要这样做,以确保与旧代码库的兼容性。新的mongodb扩展设计时考虑到了向后兼容,但仍然建议...

    Jongo-用Java实现像Mongoshell一样的查询

    Jongo是一个强大的Java库,它提供了一种简洁且直观的方式来操作MongoDB数据库,类似于Mongo shell的命令行体验。这个库的目标是简化Java开发者与MongoDB之间的交互,通过提供一个直观的API,使得查询和操作数据变得...

    log4mongo-java.7z

    标题“log4mongo-java.7z”提示我们这是一个与Java日志记录相关的项目,它集成了MongoDB数据库来存储日志信息。MongoDB是一个流行的NoSQL数据库,以其灵活性和高性能而受到开发者的青睐。在Java应用程序中,日志记录...

    java操作mongoDB实现文件上传预览打包下载

    在Java编程环境中,...总的来说,Java与MongoDB的集成提供了丰富的功能,可以方便地实现文件的上传、下载、预览和打包下载。通过理解MongoDB的API和Java的IO流处理,开发者可以构建出高效且用户友好的文件管理系统。

    mongo-java-driver-3.4.1

    总的来说,"mongo-java-driver-3.4.1"提供了全面的接口,帮助Java开发者无缝地集成MongoDB数据库,无论是简单的数据操作还是复杂的业务逻辑,都能得到充分的支持。开发者可以通过这个驱动程序充分利用MongoDB的灵活...

    springboot整合mongodb用MongoTemplate.rar

    总之,SpringBoot与MongoDB的整合让Java开发者能够轻松地利用MongoDB的特性,MongoTemplate作为主要的交互工具,提供了强大的功能和灵活性。通过学习和实践这个示例,你可以深入理解SpringBoot如何管理和操作MongoDB...

    mongo-java-driver-3.0.rar

    Java驱动程序是MongoDB官方提供的,用于Java开发者集成到他们的项目中。3.0版本的驱动程序引入了许多改进和新特性,旨在提升开发者的体验和应用性能。 首先,连接管理是驱动程序的核心部分。在3.0版本中,驱动程序...

    经过改造的mongo-java-driver-2.14.3.jar.zip

    在这个特定的场景中,我们讨论的是一个经过改造的`mongo-java-driver-2.14.3.jar.zip`文件,它被优化以适应在Kettle(Pentaho Data Integration)环境中使用,特别是与包含用户认证的MongoDB实例进行交互。...

    mongo-java-driver.zip

    MongoDB是一个流行的开源、分布式文档数据库系统,常用于构建高性能、高可用性的现代应用程序。...通过`mongo-java-driver.jar`,开发者可以在Java项目中无缝地集成MongoDB,从而实现高效的数据库交互。

    Mongo Java jar

    Mongo Java Jar,正如标题所示,是指用于在Java环境中连接MongoDB数据库的驱动程序包。MongoDB是一个流行的开源、分布式文档数据库系统,而...通过理解并熟练运用这些API,可以轻松地在Java应用中集成MongoDB的功能。

    mogo-java-driver-3.4.2.jar包

    总的来说,这个压缩包提供了一个完整的MongoDB Java驱动程序环境,包括驱动程序本身、文档和源代码,以便于开发人员在Java项目中有效地集成和使用MongoDB。通过理解和熟练运用这些资源,开发者可以构建高效、可靠的...

    mongo集成spring struts2 json velocity

    总结来说,"mongo集成spring struts2 json velocity"这个项目展示了如何在Java Web开发中整合多种技术,构建一个高效、灵活的应用程序。MongoDB提供了高效的数据库支持,Spring框架带来了强大的企业级特性,Struts2...

    MongoDB可视化客户端工具和Java开发所需mongo-2.8.0.jar

    使用`mongo-2.8.0.jar`,开发者可以方便地集成MongoDB的功能,例如创建MongoDB连接、执行查询、处理结果集、插入和更新文档,以及执行聚合操作等。在Java项目中,可以通过Maven或Gradle等构建工具将这个jar包作为...

    Java连接mongoDB需要的jar包

    MongoDB官方提供了Java驱动程序,使得开发者能够方便地在Java应用中集成MongoDB功能。本篇文章将详细讲解如何使用Java连接MongoDB,以及涉及到的关键JAR包的作用。 首先,我们来看一下标题中提到的三个关键JAR文件...

    java操作mongodb.zip

    MongoDB是一个分布式文档型数据库,它属于NoSQL数据库的一种,与传统的关系型数据库(如SQL)有着显著的区别。...通过Java驱动程序和相关的框架支持,可以方便地在Java Web应用中集成和操作MongoDB。

    springboot之集成mybatis mongo shiro druid redis jsp

    本项目标题提到的"springboot之集成mybatis mongo shiro druid redis jsp"是一个整合了多个组件和技术的SpringBoot应用示例,下面我们将详细探讨这些技术及其在项目中的作用。 1. **MyBatis**:MyBatis是一个优秀的...

    qinxuewu-mongo-web-select-master_java_

    【标题】"qinxuewu-mongo-web-select-master_java_" 暗示这是一个关于Java编程的项目,专门针对MongoDB数据库的Web选择功能。MongoDB是一个流行的NoSQL数据库,而Web选择功能通常指的是通过Web界面进行数据查询和...

Global site tag (gtag.js) - Google Analytics