NoSql之mongo实现数据库数据操作
1、创建唯一数据库实例DB
Java代码
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操作工具类
Java代码
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会自动创建
tab