MongoDB的对象的创建
package com.voice.db; import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.ReadPreference;
import com.mongodb.ServerAddress;
import com.mongodb.WriteConcern; public class MongoDB { private Mongo wMongodb; private static MongoDB instance = null; private static synchronized MongoDB GetInstance()
{
if(!isInstanceAlive())
{
instance = new MongoDB();
}
return instance;
} /**
* 判断数据库是否处于连接状态中
* @return true:连接中<br/>
* false:已断开
*/
private static boolean isInstanceAlive() {
boolean retBool = false;
try {
// 尝试访问一次数据库
DBCollection col = instance.wMongodb.getDB("database_name").getCollection("table_name");
col.count();
retBool = true;
} catch (Exception e) {
try {
instance.wMongodb.close();
} catch (Exception ex) {}
}
return retBool;
} private MongoDB()
{
try {
MongoClientOptions.Builder voicedbBuilder = MongoClientOptions.builder();
voicedbBuilder.connectTimeout(3000);
voicedbBuilder.socketTimeout(6000);
voicedbBuilder.autoConnectRetry(true);
voicedbBuilder.connectionsPerHost(5);
voicedbBuilder.readPreference(ReadPreference.secondaryPreferred());
voicedbBuilder.socketKeepAlive(true);
MongoClientOptions voicedbOptions = voicedbBuilder.build(); // wMongodb = new MongoClient(new ServerAddress("172.16.10.15", 27020),voicedbOptions);
wMongodb = new MongoClient(new ServerAddress("localhost", 27020),voicedbOptions); DB db = wMongodb.getDB("db_name");
// DB db = wMongodb.getDB("olacloud_internal");
db.authenticate("id", "id".toCharArray());
db.setWriteConcern(WriteConcern.SAFE);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } /**
* 获取数据库连接
* @return 已经连接的数据库
*/
public static DB getDB() {
DB db = MongoDB.GetInstance().wMongodb.getDB("db_name");
// DB db = MongoDB.GetInstance().wMongodb.getDB("olacloud_internal");
return db;
} /**
* 获取table的连接
* @param tableName table名
* @return table连接
*/
public static DBCollection getDBCollection(String tableName) {
DB db = MongoDB.getDB();
DBCollection col = db.getCollection(tableName);
return col;
} /**
* 关闭当前的Mongodb连接
*/
public static void close() {
if (instance != null) {
instance.wMongodb.close();
}
} }
MongoDB的对象的创建的更多相关文章
- 图解JAVA对象的创建过程
前面几篇博文分别介绍了JAVA的Class文件格式.JVM的类加载机制和JVM的内存模型,这里就索性把java对象的创建过程一并说完,这样java对象的整个创建过程就基本上说明白了(当然你要有基础才能 ...
- MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划
这篇文章主要介绍了MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划的相关资料,需要的朋友可以参考下 一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存 ...
- JVM中对象的创建过程
JVM中对象的创建过程如以下流程图中所示: 对其主要步骤进行详细阐述: 为新生对象分配内存: 内存的分配方式: 指针碰撞:假设Java堆中内存是绝对规整的,所有用过的内存放在一边,空闲的内存在另一边, ...
- 《JavaScript高级程序设计》读书笔记--(4)对象的创建
ECMAScript支持面向对象(OO)编程,但不使用类或者接口.对象可以在代码执行过程中创建或增强,因此具有动态性而非严格定义的实体.在没有类的情况下,可以采用下列模式创建对象. 对象的创建 工厂模 ...
- java 对象 :创建
灵感来自effective java 关于对象,是java的核心,如何有效的创建其实是一个值得关注的地方. 1.静态工厂:这是一个值得关注的,并且应该时刻考虑的方法. 优点:1.他是有名字的,这个是如 ...
- 深入理解Java虚拟机(二)、Java对象的创建,内存布局和访问定位
对象的创建: Object obj = new Object(); 常量池中是否有Ljava.lang.Object
- java类的初始化和对象的创建顺序
学习java编程思想--类的初始化p146 类的加载顺序* 1加载器启动找到 xxx.class文件,通过extends关键字寻找基类,先加载基类* 2类初始化先初始化static成员变量和stati ...
- Emit学习(2) - IL - 对象的创建过程
上一篇的介绍中, 并没有介绍到对象的创建过程, 这一篇主要就介绍一下, 对象的创建过程. 其实熟悉了IL语法之后, 完全可以用Reflector反编译代码去查看. 而且正因为有这个工具, 可以对照着R ...
- JavaScript对象的创建之基于构造方法+原型方式
为了解决原型所带来的问题,此处需要通过组合构造方法和原型来实现对象的创建,将属性在构造方法中定义,将方法在原型中定义.这种有效集合了两者的优点,是目前最为常用的一种方式. function Perso ...
随机推荐
- Linked List Cycle - LeetCode
Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using ext ...
- luogu P3147 [USACO16OPEN]262144
题目描述 Bessie likes downloading games to play on her cell phone, even though she doesfind the small to ...
- SecureCRT双击Tab快速复制Session
- app中获取应用名称,版本等信息的方法
在app中,我们有时候需要显示一些信息,例如名称,版本等等...如果用写死的方式可能不太好,我们可以动态的读取.应用的信息主要是在info.plist这个文件中,实际就是一个xml文件,以源文件的方式 ...
- Windows2003建立FTP服务器以及报530 User <用户名> cannot log in home directory inaccessible的解决方法
Windows2003建立FTP服务器: Windows2003建立FTP服务器 FTP连接 ...
- EasyMvc入门教程-基本控件说明(2)定时器
我们有时候希望系统能自动刷新后台数据或者做某个动作,那么定时器的作用就体现出来了. EasyMvc默认提供的服务器可以定时调前端方法与定时调后端方法,先看例子: 定时调客户端事件 实现代码: @Htm ...
- OSG+VS2010+win7环境搭建 (转)
OSG+VS2010+win7环境搭建 Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接: http:/ ...
- 【Python】分析文本split()
分析单个文本 split()方法,是以空格为分隔符将字符串拆分成多个部分,并将这些部分存储到一个列表中 title = 'My name is oliver!' list = title.split( ...
- SQL CASE WHEN ... THEN ... ELSE.. END 实例
用一个SQL语句完成不同条件的分组(SELECT部分): select QuoteOrderId,SUM(case when(ApprovalStatus=1)then Amount else 0 e ...
- ubuntu 下开源安装
常用开源库安装: 0.安装g++: sudo apt-get install g++ 1.首先不可或缺的就是编译器与基本的函式库: sudo apt-get install build-essenti ...