package cc.openwiki.utils
import cn.hutool.core.util.StrUtil;
import com.mongodb.DBCollection;
import com.mongodb.MongoClient;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import java.util.HashMap;
import java.util.Map;
@Slf4j
public class MongodbHelper {
private static String host="10.19.128.134";
private static String port="27017";
public static Map<String,MongoCollection<Document>> maps= new HashMap<>();
public static MongoClient mongoClient ;
public static Map<String,MongoDatabase> dbMaps = new HashMap<>();
public static MongoCollection<Document> getCollectionByDB(String db,String col){
if(StrUtil.isEmpty(col)){
log.info("获取连接错误");
return null;
}
MongoCollection<Document> collection = maps.get(col);
if(collection!=null){
return collection;
}
synchronized(MongodbHelper.class){
if (collection==null) {
MongoDatabase md = getDB(db);
collection = md.getCollection(col);
}
return collection;
}
}
public static MongoCollection<Document> getCollection(String col){
return getCollectionByDB("daily",col);
}
public static MongoDatabase getDB(String db){
if(StrUtil.isEmpty(db)){
log.info("获取连接错误");
return null;
}
if(dbMaps.get(db)!=null){
return dbMaps.get(db);
}else {
MongoDatabase md = getMongoClientInstace().getDatabase(db);
dbMaps.put(db,md);
return md;
}
}
private static MongoClient getMongoClientInstace() {
if(mongoClient == null){
synchronized (MongodbHelper.class) {
if(mongoClient == null){
System.out.println("初始化mongoClient"+host+":"+port);
mongoClient = new MongoClient(new ServerAddress(host,Integer.parseInt(port)));
}
}
}
return mongoClient;
}
public static DBCollection getDBCollection(String col){
return mongoClient.getDB("daily").getCollection(col);
}
public static DBCollection getDBCollectionByDB(String db,String col){
return mongoClient.getDB(db).getCollection(col);
}
public void setHost(String host) {
MongodbHelper.host = host;
}
public void setPort(String port) {
System.out.println(port);
MongodbHelper.port = port;
}
}
mongodb的一个工具类
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 干货要点: 1、叙述、描写和说明是三种记“实”的能力。 2、议论和抒情是两种写“虚”的能力。 3、根据表达的中心,...