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

[b]1、创建唯一数据库实例DB[/b]
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;
}

}

[b]2、创建CRUD操作工具类[/b]
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值