bugumongo--ConnectToMongoDB
连接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的更多相关文章
- BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能
http://code.google.com/p/bugumongo/ 简介 BuguMongo是一个MongoDB Java开发框架,它的主要功能包括: 基于注解的对象-文档映射(Object-Do ...
- Java MongoDB 资料集合
一.Mongodb介绍及对比 1.NoSQL介绍及MongoDB入门 http://renial.iteye.com/blog/684829 2.mongoDB 介绍(特点.优点.原理) http:/ ...
- Java 连接MongoDB集群的几种方式
先决条件 先运行mongodb肯定是必须的,然后导入以下包: import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; im ...
- Spring boot连接MongoDB集群
主要问题是:MongoDB集群分为复制集(replicaSet)与分片集(shardingSet),那么如何去连接这两种集群: 参考官方文档,我使用了最通用的方法:通过构造connection str ...
- [Java] 数据分析 -- NoSQL数据库
MongoDB概念:与关系型数据库对应 database(数据库):数据库 collection(集合):表 document(文档):行 field(域):列/字段 注意事项 文档是一组键值(key ...
随机推荐
- 单引号,双引号 和 heredoc 初始化php字符串之间的区别
php中的字符串指的是字符的序列,可以通过三种方式初始化:单引号.双引号和使用here document(heredoc) 形式. 一:单引号时 ①:需要转义的特殊字符:反斜杠和单引号. ②:因为ph ...
- 在.NET连接MySQL以及封装好的MySQLHelper.cs
1.首先上MySQL网站下驱动:http://www.mysql.com/products/connector/ 2.安装下载的安装包 3.我们在Visual Studio里创建一个Web Appli ...
- [DevExpress]设置RepositoryItemComboBox只可下拉选择不可编辑
将TextEditStyle属性设置如下即可: 希望有所帮助!
- NoSQL性能测试:MongoDB VS SequoiaDB
作 为NoSQL的一个重要类型,文档型NoSQL通常被认为是最接近传统关系型数据库的NoSQL.文档型NoSQL的核心是数据嵌套,这种设计可以从某种 程度上大大简化传统数据库复杂的关联问题.同时由于摆 ...
- 淘宝IP地址库采集器c#代码
这篇文章主要介绍了淘宝IP地址库采集器c#代码,有需要的朋友可以参考一下. 最近做一个项目,功能类似于CNZZ站长统计功能,要求显示Ip所在的省份市区/提供商等信息.网上的Ip纯真数据库,下载下来一看 ...
- PHP实现中文简体字和繁体字互转
function convert($str, $action='S'){ if($action != 'S' && $action != 'T'){ return $str; } $s ...
- Spark Streaming揭秘 Day34 解析UI监听模式
Spark Streaming揭秘 Day34 解析UI监听模式 今天分享下SparkStreaming中的UI部分,和所有的UI系统一样,SparkStreaming中的UI系统使用的是监听器模式. ...
- 支持异步通知的globalfifo平台设备驱动程序及其测试代码
驱动: #include <linux/module.h> #include <linux/types.h> #include <linux/fs.h> #incl ...
- 关于Shell中命令替换$(...)与后置引用`...`的不同
命令替换 在bash中,$( )与` `(反引号)都是用来作命令替换的.命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行. $( )与`` ...
- pl/sql插入报错
用pl/sql 命令的方法导入文件,发现一只提示文件报错.报Error reading file错误. 原来: 在pl/sql工具->导入表里的sql插入方式下,可以选择“使用命令窗口”和“使用 ...