连接MongoDB

在能够对MongDB进行操作之前,需要使用BuguConnection连接到MongoDB数据库。代码如下:

BuguConnection conn = BuguConnection.getInstance();
conn.connect("192.168.0.100", 27017, "mydb", "username", "password");

也可以这样写:

BuguConnection conn = BuguConnection.getInstance();
conn.setHost("192.168.0.100").setPort(27017).setDatabase("mydb").setUsername("username").setPassword("password").connect();

如果不需要提供授权帐号,那么可以省略用户名和密码:

BuguConnection conn = BuguConnection.getInstance();
conn.connect("192.168.0.100", 27017, "mydb");

连接副本集(ReplicaSet)

如果需要连接到一组ReplicaSet,那么代码例子如下:

List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(new ServerAddress("192.168.0.100", 27017));
addrs.add(new ServerAddress("192.168.0.101", 27017));
BuguConnection conn = BuguConnection.getInstance();
conn.setReplicaSet(addrs).setDatabase("mydb").setUsername("username").setPassword("password").connect();

设置连接参数

如果不想使用默认的连接参数,那么可以自己提供一个MongoClientOptions:

MongoClientOptions options = ...
BuguConnection conn = BuguConnection.getInstance();
conn.setHost("192.168.0.100").setPort(27017).setDatabase("mydb").setOptions(options).connect();

对于各个连接参数和它们的默认值,可以查看MongoClientOptions的源代码

其中一个大家最为关心的参数,就是数据库连接数(连接池)。最新的MongoDB Java Driver默认使用100个连接,这个数目足够大了。如果你要修改这个默认的连接数,可以这样写:

MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
builder.connectionsPerHost(200); //使用200个连接
MongoClientOptions options = builder.build();
BuguConnection conn = BuguConnection.getInstance();
conn.setHost("192.168.0.100").setPort(27017).setDatabase("mydb").setUsername("username").setPassword("password").setOptions(options).connect

关闭连接

当应用程序退出的时候,可以调用close()方法关闭BuguConnection,以便立即释放所有资源。

BuguConnection.getInstance().close();

连接数据库的代码应该写在哪里?

你可以把BuguConnection类看作是配置文件。它是一个单例模式。BuguMongo框架的其它组件,如DAO,会自动使用BuguConnection类的实例作为数据库连接。

连接数据库的代码,应该写在应用程序初始化的地方。如果是开发Java Application,那么可能是在main()方法里的开始部分;如果开发的是web应用,那么可以在web.xml里添加一个监听器,比如:

<listener>
<listener-class>
com.xbwen.context.MySystemListener
</listener-class>
</listener>

MySystemListener是自己定义的一个监听器,用来在系统启动的时候进行一些初始化设置,在系统关闭的时候回收资源。示例代码如下:

package com.xbwen.context;
import com.bugull.mongo.BuguConnection;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener; public class MySystemListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent event) {
//连接数据库
BuguConnection conn = BuguConnection.getInstance();
conn.connect("192.168.0.100", 27017, "test", "test", "test");
} @Override
public void contextDestroyed(ServletContextEvent event) {
//关闭数据库连接
BuguConnection.getInstance().close();
}
}

bugumongo--ConnectToMongoDB的更多相关文章

  1. BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能

    http://code.google.com/p/bugumongo/ 简介 BuguMongo是一个MongoDB Java开发框架,它的主要功能包括: 基于注解的对象-文档映射(Object-Do ...

  2. Java MongoDB 资料集合

    一.Mongodb介绍及对比 1.NoSQL介绍及MongoDB入门 http://renial.iteye.com/blog/684829 2.mongoDB 介绍(特点.优点.原理) http:/ ...

  3. Java 连接MongoDB集群的几种方式

    先决条件 先运行mongodb肯定是必须的,然后导入以下包: import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; im ...

  4. Spring boot连接MongoDB集群

    主要问题是:MongoDB集群分为复制集(replicaSet)与分片集(shardingSet),那么如何去连接这两种集群: 参考官方文档,我使用了最通用的方法:通过构造connection str ...

  5. [Java] 数据分析 -- NoSQL数据库

    MongoDB概念:与关系型数据库对应 database(数据库):数据库 collection(集合):表 document(文档):行 field(域):列/字段 注意事项 文档是一组键值(key ...

随机推荐

  1. qml去标题栏

    只要加入"flags: Qt.Window | Qt.FramelessWindowHint "属性就可实现去标题栏. 注意:在使用这个属性的时候要先导入QtQuick.Windo ...

  2. js获取键盘按键响应事件(兼容各浏览器)

    <script type="text/javascript" language="JavaScript" charset="UTF-8" ...

  3. 纯JS焦点图特效(可一个页面多用)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 一些dos命令

    MS DOS 命令大全 一.基础命令 1 dir 无参数:查看当前所在目录的文件和文件夹. /s:查看当前目录已经其所有子目录的文件和文件夹. /a:查看包括隐含文件的所有文件. /ah:只显示出隐含 ...

  5. 使用GruntJS构建Web程序

    Gruntjs是JavaScript项目的构建工具,也是基于node的一个命令行工具.很多开源JS项目都是使用它搭建.如jQuery.Qunit.CanJS等.它有以下作用 合并JS文件 压缩JS文件 ...

  6. pdo 连接数据库 报错 could not find driver 解决方法

    在windows 下,调试一个PHP程序时,报了这个错误, could not find driver 原来我的这个程序中用到了PDO对象, 连接mysql 5.  在PHP的默认设置中,只打开了ph ...

  7. Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析

    Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析 今天通过集群运行模式观察.研究和透彻的刨析SparkStreaming的日志和web监控台. Day28 ...

  8. 计算器(delphi)

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  9. c语言背后的运行机制

    目的:通过分析c语言转换成汇编代码后的执行过程对汇编语言和X86构架有一个初步认识 实验代码 #include <stdio.h> int g(int x) { ; } int f(int ...

  10. 使用泛型 类型“System.Collections.Generic.IEnumerator<T>”需要 1 个类型参数

    解决办法:添加 using System.Collections:命名空间