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),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 } } }
3、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