Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189242
  • 博文数量: 92
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1413
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-04 21:12
文章分类
文章存档

2013年(92)

我的朋友

分类: 信息化

2013-03-14 02:37:35

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*/  
阅读(1009) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

niao59292013-03-14 22:45:48

openJDK!!