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的一個工具類
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門桥状,熙熙樓的掌柜王于貴愁眉苦臉地迎上來硝清,“玉大人辅斟,你說我怎么就攤上這事芦拿。” “怎么了酵幕?”我有些...
- 文/不壞的土叔 我叫張陵蚁趁,是天一觀的道長。 經(jīng)常有香客問我番官,道長钢属,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任淆党,我火速辦了婚禮,結(jié)果婚禮上山孔,老公的妹妹穿的比我還像新娘荷憋。我一直安慰自己,他們只是感情好勒庄,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荡碾,像睡著了一般局装。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铐尚,一...
- 文/蒼蘭香墨 我猛地睜開眼碉熄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锈津?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布饰潜,位于F島的核電站和簸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏锁保。R本人自食惡果不足惜半沽,卻給世界環(huán)境...
- 文/蒙蒙 一吴菠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧橄务,春花似錦穴亏、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谦屑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氢橙,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 干貨要點: 1、敘述冕茅、描寫和說明是三種記“實”的能力伤极。 2、議論和抒情是兩種寫“虛”的能力姨伤。 3哨坪、根據(jù)表達的中心,...