`

NoSql之mongo实现数据库数据操作

阅读更多
1、创建唯一数据库实例DB
package com.boonya.mongo;
import java.net.UnknownHostException;
import java.util.Arrays;
import com.mongodb.DB;
import com.mongodb.MongoClient;
import com.mongodb.ServerAddress;

public class DBConnection {
	
	private DBConnection(){}
	
	private static String  userName="boonya";
	private static char [] password="boonya".toCharArray();
	private static  DB db=null;
	
	/**
	 * mongoClient = new MongoClient();
     * // or
     * mongoClient = new MongoClient( "localhost" );
     * // or
     * mongoClient = new MongoClient( "localhost" , 27017 );
     * // or, to connect to a replica set, supply a seed list of members
	 * @return
	 */
	public synchronized static DB getInstance(){
        if(db==null){
    		MongoClient mongoClient=null;
    		try {
    			mongoClient = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017),
    					new ServerAddress("localhost", 27018),
    					new ServerAddress("localhost", 27019)));
    		} catch (UnknownHostException e) {
    			e.printStackTrace();
    		}
    		db = mongoClient.getDB("mydb");
    		boolean auth = db.authenticate(userName,password);
            if(!auth){                      //the authentication is invalid
            	return null;
            }
        }
		return db;
	}

}

2、创建CRUD操作工具类
package com.boonya.mongo.optimize;
import java.net.UnknownHostException;
import com.boonya.mongo.utils.ConstantUtils;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.MongoOptions;

public class MongDbCRUD {
	
	private static Mongo mongo = null;
	private static DB db;
	private static DBCollection table;
	
	private static MongDbCRUD instace;
	
	public static synchronized MongDbCRUD getInstance(){
		if(instace==null||mongo==null||db==null||table==null){
			instace = new MongDbCRUD();
		}
		return instace;
	}
	
	public MongDbCRUD(){
		String host = ConstantUtils.getValue("mongo.host").toString();
		int port = Integer.parseInt(ConstantUtils.getValue("mongo.port").toString());
		String datablease = ConstantUtils.getValue("mongo.datablease").toString();
		String tablelename = ConstantUtils.getValue("mongo.table.bound").toString();
		
		try {
			mongo = new Mongo(host, port);
			// 连接池
			MongoOptions opt = mongo.getMongoOptions();
			opt.connectionsPerHost =  10  ; //poolsize
			opt.threadsAllowedToBlockForConnectionMultiplier =  10 ;
			
			//获取temp DB;如果默认没有创建,mongodb会自动创建
			db = mongo.getDB(datablease);
			//获取users DBCollection;如果默认没有创建,mongodb会自动创建
			table = db.getCollection(tablelename);
			//DO SOMETHING
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (MongoException e) {
			e.printStackTrace();
		}
	}
	
	public MongDbCRUD(String host, int port, String datablease, String tablelename){
		try {
			mongo = new Mongo(host, port);
			// 连接池
			MongoOptions opt = mongo.getMongoOptions();
			opt.connectionsPerHost =  10  ; //poolsize
			opt.threadsAllowedToBlockForConnectionMultiplier =  10 ;
			
			//获取temp DB;如果默认没有创建,mongodb会自动创建
			db = mongo.getDB(datablease);
			//获取users DBCollection;如果默认没有创建,mongodb会自动创建
			table = db.getCollection(tablelename);
			//DO SOMETHING		
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (MongoException e) {
			e.printStackTrace();
		}
	}
	
	public static void free(){
		if(mongo!=null){
			mongo.close();
		}
		mongo = null;
		db = null;
		table = null;
		System.gc();
	}
	
	public static DBCollection getDBCollection(){
		return table;
	}
	
	public void add(DBObject row){
		table.save(row);
	}
	
	public void query(){
		DBCursor cur = table.find();
		while (cur.hasNext()) { 
			DBObject dbobject = cur.next();
			System.out.println(dbobject.get("key"));//get value
		} 
	}
	
}
//注:mongo.properties的内容如下,
#mongodb setting
mongo.host=192.168.20.38
mongo.port=27017
mongo.database=map
mongo.table.bound=bound
mongo.username=username
mongo.pwd=pwd
分享到:
评论

相关推荐

    实验四:NoSQL和关系数据库的操作比较

    对于NoSQL数据库HBase、Redis和MongoDB,虽然没有提供具体的操作步骤,但通常它们的使用包括安装相应的客户端工具,学习其特定的命令行语法或者Java API,例如HBase的HBase Shell、Redis的`redis-cli`和MongoDB的...

    nosqlbooster4mongo-5.2.8.zip

    总的来说,NosqlBooster 4Mongo是MongoDB开发者和管理员的理想工具,通过提供丰富的功能和便捷的操作界面,使得MongoDB的管理变得更加简单和高效。无论是进行日常的数据操作、性能调试还是团队协作,NosqlBooster都...

    nosqlbooster4mongo-4.7.4

    【nosqlbooster4mongo-4.7.4】是一个专为MongoDB设计的免费图形化客户端工具,它为数据库管理员和开发人员提供了一个高效、便捷的界面来管理和操作MongoDB数据库。MongoDB是一款流行的NoSQL数据库系统,以其灵活性、...

    nosqlbooster4mongo.7z

    nosqlbooster4mongo正是一款专为MongoDB设计的强大管理工具,它提供了直观的用户界面,让开发者和数据库管理员能够轻松地执行查询、管理数据、监控性能以及进行各种数据库维护任务。 nosqlbooster4mongo的主要特性...

    nosqlbooster4mongo-6.2.10,MongoDB连接工具

    NosqlBooster for MongoDB是一款高效、用户友好的MongoDB管理工具,版本为6.2.10,专为简化数据库操作而设计。在本文中,我们将深入探讨这款工具的功能及其对MongoDB操作的便利性。 首先, NosqlBooster for ...

    nosqlbooster4mongo-7.0.8,MongoDB连接工具

    通过使用NosqlBooster 4 MongoDB 7.0.8,开发者和DBA可以更高效地管理和操作MongoDB数据库,无论是进行日常的数据查询、文档管理,还是进行性能优化和故障排查,都能感受到其带来的便利。在实际工作中,这款工具可以...

    10NoSQL非关系型数据库.zip

    NoSQL(Not Only SQL)非关系型数据库是近年来在大数据处理和分布式系统中广泛应用的数据存储技术。相较于传统的关系型数据库,NoSQL数据库更注重水平扩展和高性能读写,适合处理大规模数据并行计算和实时分析。 ...

    nosqlbooster4mongo-5.2.9.rar

    MongoBooster 5.2.9 的安装文件 "nosqlbooster4mongo-5.2.9.exe" 是一个 Windows 可执行程序,用于在 Windows 操作系统上安装该工具。在安装过程中,用户通常需要指定 MongoDB 服务器的连接信息,然后就可以开始使用...

    nosqlbooster4mongo-5.1.10.exe.zip

    2. **SQL-like查询支持**:尽管MongoDB是一种NoSQL数据库,但NosqlBooster支持类似于SQL的查询语法,使习惯于SQL的用户也能轻松进行数据操作。 3. **数据导入导出**:该工具支持批量导入和导出数据,可以方便地从...

    nosql安装文件4mongo-6.0.4.rar

    MongoDB是一种流行的NoSQL数据库系统,它以非关系型数据模型为核心,提供了高效、可扩展的数据存储解决方案。MongoDB的设计理念是为了解决传统关系型数据库在处理大规模数据集时遇到的问题,例如复杂的JOIN操作、...

    nosqlbooster4mongo-5.0.3.rar mongoDB连接工具

    NosqlBooster for MongoDB是专为MongoDB设计的一款高效、功能强大的管理工具,能够帮助用户更方便地进行数据库的管理和操作。在这个“nosqlbooster4mongo-5.0.3.rar”压缩包中,包含的是 NosqlBooster for MongoDB ...

    mongo 数据库

    其命令行工具(Mongo shell)也提供了交互式的接口,用于数据库管理、查询以及数据导入导出。 MongoDB 的另一个优势是其强大的聚合框架,能够进行复杂的数据分析和报告生成。通过管道操作,可以对数据进行过滤、...

    nosqlbooster4mongo-6.2.11.rar

    这款工具提供了多种功能,包括数据浏览、查询构建、数据导入导出、性能监控以及数据库管理等,极大地简化了 MongoDB 的日常操作。 在 NosqlBooster for MongoDB 6.2.11 版本中,我们可以期待以下关键特性: 1. **...

    nosqlbooster4mongo-5.2.11.zip

    MongoBooster 5.2.11 是一个专为 MongoDB 设计的强大管理工具,它提供了直观的图形用户界面...通过使用这个工具,用户可以更便捷地操作MongoDB数据库,进行数据管理和分析,从而更好地利用这种强大的NoSQL数据库系统。

    Nosql非关系型数据库-Windows下成功安装MongoDB.pptx

    MongoDB是一种流行的 Nosql 非关系型数据库系统,它以高效、可扩展性和灵活性而闻名,特别适合处理大量非结构化或半结构化的数据。Nosql 数据库与传统的关系型数据库不同,它们不依赖于固定的表结构,而是采用如文档...

    Mongo数据库

    MongoDB 是一款高性能、开源、无模式的文档型数据库,属于 NoSQL 数据库中的热门选择。它使用 C++ 开发,适用于需要高伸缩性、高性能以及存储非结构化数据的场景。MongoDB 的特点包括面向集合存储、模式自由、支持...

    mongo数据库注册服务和启动

    MongoDB 是一种开源的、文档型的、非关系型数据库(NoSQL),广泛应用于现代应用程序的数据存储与管理。它支持灵活的数据模式,能够高效处理大量数据,并且提供了丰富的查询语言。 #### 二、MongoDB 注册为系统服务...

    mangoDB图形界面工具nosqlbooster4mongo.zip

    "nosqlbooster4mongo"正是这样一款专为MongoDB设计的图形界面工具,它极大地简化了MongoDB的日常管理任务,如数据浏览、查询、备份和恢复等。 nosqlbooster4mongo的特点与功能: 1. **数据浏览**:用户可以通过图形...

    Nosql总结的部分操作

    复制集是Nosql数据库中的一个重要概念,它可以实现数据的高可用性和冗余性。创建复制集需要创建数据文件夹、日志文件夹、配置文件夹和进程描述文件目录等。 1. 创建数据文件夹 首先,需要创建一个数据文件夹,用于...

    dbeaver21.1-enterprise-agent用于连接MongoDB等NoSQL类型数据库

    在当今数据驱动的世界里,NoSQL数据库因其灵活的数据模型和高可扩展性,已经成为许多企业的首选。而dbeaver21.1-enterprise-agent则为这些数据库的管理和操作提供了便捷的界面和丰富的功能。 MongoDB是一款领先的...

Global site tag (gtag.js) - Google Analytics