zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    OC实现个人中心页面
    3D Touch开发技巧的笔记
    APP快速搭建框架
    Swift10大开源项目记录
    iOS进阶学习笔记
    如何使启动界面图片全屏
    【DRF框架】restfull规范
    【DRF框架】版本控制组件
    【DRF框架】路由组件
    【DRF框架】视图组件
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/4193502.html
Copyright © 2011-2022 走看看