MongoDB的对象的创建
1 package com.voice.db; 2 3 import com.mongodb.DB; 4 import com.mongodb.DBCollection; 5 import com.mongodb.Mongo; 6 import com.mongodb.MongoClient; 7 import com.mongodb.MongoClientOptions; 8 import com.mongodb.ReadPreference; 9 import com.mongodb.ServerAddress; 10 import com.mongodb.WriteConcern; 11 12 13 public class MongoDB { 14 15 private Mongo wMongodb; 16 17 private static MongoDB instance = null; 18 19 private static synchronized MongoDB GetInstance() 20 { 21 if(!isInstanceAlive()) 22 { 23 instance = new MongoDB(); 24 } 25 return instance; 26 } 27 28 /** 29 * 判断数据库是否处于连接状态中 30 * @return true:连接中<br/> 31 * false:已断开 32 */ 33 private static boolean isInstanceAlive() { 34 boolean retBool = false; 35 try { 36 // 尝试访问一次数据库 37 DBCollection col = instance.wMongodb.getDB("database_name").getCollection("table_name"); 38 col.count(); 39 retBool = true; 40 } catch (Exception e) { 41 try { 42 instance.wMongodb.close(); 43 } catch (Exception ex) {} 44 } 45 return retBool; 46 } 47 48 private MongoDB() 49 { 50 try { 51 MongoClientOptions.Builder voicedbBuilder = MongoClientOptions.builder(); 52 voicedbBuilder.connectTimeout(3000); 53 voicedbBuilder.socketTimeout(6000); 54 voicedbBuilder.autoConnectRetry(true); 55 voicedbBuilder.connectionsPerHost(5); 56 voicedbBuilder.readPreference(ReadPreference.secondaryPreferred()); 57 voicedbBuilder.socketKeepAlive(true); 58 MongoClientOptions voicedbOptions = voicedbBuilder.build(); 59 60 // wMongodb = new MongoClient(new ServerAddress("172.16.10.15", 27020),voicedbOptions); 61 wMongodb = new MongoClient(new ServerAddress("localhost", 27020),voicedbOptions); 62 63 DB db = wMongodb.getDB("db_name"); 64 // DB db = wMongodb.getDB("olacloud_internal"); 65 db.authenticate("id", "id".toCharArray()); 66 db.setWriteConcern(WriteConcern.SAFE); 67 } catch (Exception e) { 68 // TODO Auto-generated catch block 69 e.printStackTrace(); 70 } 71 72 } 73 74 /** 75 * 获取数据库连接 76 * @return 已经连接的数据库 77 */ 78 public static DB getDB() { 79 DB db = MongoDB.GetInstance().wMongodb.getDB("db_name"); 80 // DB db = MongoDB.GetInstance().wMongodb.getDB("olacloud_internal"); 81 return db; 82 } 83 84 /** 85 * 获取table的连接 86 * @param tableName table名 87 * @return table连接 88 */ 89 public static DBCollection getDBCollection(String tableName) { 90 DB db = MongoDB.getDB(); 91 DBCollection col = db.getCollection(tableName); 92 return col; 93 } 94 95 /** 96 * 关闭当前的Mongodb连接 97 */ 98 public static void close() { 99 if (instance != null) { 100 instance.wMongodb.close(); 101 } 102 } 103 104 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。