java操作mongodb(连接池)(转)
原文链接: java操作mongodb(连接池)
Mongo的实例其实就是一个数据库连接池,这个连接池里默认有10个链接。我们没有必要重新实现这个链接池,但是我们可以更改这个连接池的配置。因为Mongo的实例就是一个连接池,所以,项目中最好只存在一个Mongo的实例。
常见的配置参数:
connectionsPerHost:每个主机的连接数
threadsAllowedToBlockForConnectionMultiplier:线程队列数,它以上面connectionsPerHost值相乘的结果就是线程队列最大值。如果连接线程排满了队列就会抛出“Out of semaphores to get db”错误。
maxWaitTime:最大等待连接的线程阻塞时间
connectTimeout:连接超时的毫秒。0是默认和无限
socketTimeout:socket超时。0是默认和无限
autoConnectRetry:这个控制是否在一个连接时,系统会自动重试
还有许多配置,可以参见mongodb的API。
下面看代码:
- package com.mongo.common;
- import java.net.UnknownHostException;
- import com.mongodb.DB;
- import com.mongodb.Mongo;
- import com.mongodb.MongoException;
- import com.mongodb.MongoOptions;
- public class MongoManager {
- private final static String HOST = "localhost";// 端口
- private final static int PORT = 27017;// 端口
- private final static int POOLSIZE = 100;// 连接数量
- private final static int BLOCKSIZE = 100; // 等待队列长度
- private static Mongo mongo = null;
- private MongoManager() { }
- static {
- initDBPrompties();
- }
- public static DB getDB(String dbName) {
- return mongo.getDB(dbName);
- }
- /**
- * 初始化连接池
- */
- private static void initDBPrompties() {
- // 其他参数根据实际情况进行添加
- try {
- mongo = new MongoClient( HOST, PORT);
- MongoOptions opt = mongo.getMongoOptions();
- opt.connectionsPerHost = POOLSIZE;
- opt.threadsAllowedToBlockForConnectionMultiplier = BLOCKSIZE;
- } catch (UnknownHostException e) {
- } catch (MongoException e) {
- }
- }
- }
使用的时候,如下所示:
- /**
- * 保存
- *
- * @param user
- * @throws UnknownHostException
- */
- public void save(User user) throws UnknownHostException {
- DB myMongo = MongoManager.getDB("myMongo");
- DBCollection userCollection = myMongo.getCollection("user");
- DBObject dbo = (DBObject) JSON.parse(user.toJson());
- userCollection.insert(dbo);
- }
转载于:https://www.cnblogs.com/gaopeng527/p/5349445.html
java操作mongodb(连接池)(转)相关推荐
- Java操作MongoDB数据库CRUD(增删查改)
Java操作MongoDB数据库CRUD(增删查改) 借助mongo-java-driver包,对MongoDB数据库的集合(DataTable)及文档(BSON对象数据)进行增删查改操作.本文的核心 ...
- 【MongoDB for Java】Java操作MongoDB
软件151--熊佳杨 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开发依赖库: JavaEE5.mongo-2.5.3. ...
- mongodb连接池 php,node.js,mongodb_nodejs使用mongodb连接池,node.js,mongodb - phpStudy
nodejs使用mongodb连接池 在开发中想使用连接池 在网上找到了一段代码 但是自己测试的时候发现了些问题 当我把setTimeout中的语句数量变成五条以上的时候 nodejs会首先执行五条 ...
- mongodb for java_【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- Java操作MongoDB
之前我们介绍的MongoDB的操作都是在shell命令中写的,在项目开发时我们当然都是用程序去操作MongoDB的,本文我们来看看如何用Java代码操作MongoDB. 本文是MongoDB系列的第十 ...
- Java操作MongoDB的基本操作
目录 Java连接MongoDB Java操作MongoDB MongoDB库操作 查看MongoDB链接中的所有的库 使用库查看库中的集合 MongoDB集合操作 插入数据 删除数据 修改数据 查询 ...
- Java操作MongoDB增删改查的基本操作
今天来讲一讲我们如何使用Java来对MongoDB进行增删改查 目录 一,Java链接MongoDB 导入MongoDB驱动包 获取链接对象 关闭链接 二,Java操作MongoDB 查看库,查看集合 ...
- Java通过DBCP连接池方法实现JDBC代码案例
Java和大数据系列 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等 ...
- springboot集成mongodb 连接池 多数据库源,源码demo
上一篇介绍了 springboot集成mongodb 多数据库源切换 源码demo 开发环境: windows 7 idea windows64 mongodb 如果没安装运行 点这里 navicat ...
最新文章
- tiny-cnn开源库的使用(MNIST)
- 菲律宾政府网站被黑!
- Vivado使用误区与进阶——XDC约束技巧之I/O篇 (下)
- 如何设计网站导航更利于SEO优化?
- codeforces 229C
- 【Mybatis】MyBatis 实现多表查询
- Apache Druid(一)简介
- 如何在Windows下编译OpenSSL
- java 改装电动_java 数组
- ladp3 获取属性_Ldap3库使用方法(四)
- 疑似华为P30 Pro样张曝光:10倍变焦依然清晰
- 推荐一个自动写paper的软件,让IEEE吐血泪奔
- 数学,远比你想象的重要!
- 数字孪生网络(DTN)架构
- 地址转换函数(点分十进制与网络字节序的二进制)
- 通过工具来监控webService请求和返回时的数据(10级学员 韩晓爽课堂总结)
- HDS VSP/VM高端存储更换电池
- 纪录片:《独立游戏大电影》
- 女子眉纤,额下现一弯新月;男儿气壮,胸中吐万丈长虹
- CAD中运用CHAMFER命令的角度模式建立倒角的方式
热门文章
- php在window磁盘管理,Windows Server 2008R2设置磁盘阵列
- 计算几何问题 java_【转载】ACM计算几何题目推荐
- html 用svg缩放拉伸,html – 拉伸SVG以适应其父级的100%高度和宽度
- 华为NOVa8Pr0是用鸿蒙系统吗,华为Nova8即将发布,采用麒麟芯片,高端平板适配鸿蒙系统...
- mysql到oracle数据迁移,mysql数据迁移到oracle
- c++ socket学习(1.4)
- 二元矩阵峰值搜索_好斗的牛(二元搜索)
- java 根据类名示例化类_Java类类getProtectionDomain()方法及示例
- Cobaltstrike4.0系列教程(一)----简介与安装
- python歌星大奖赛_在歌星大奖赛中,有10个评委为参赛选手打分,分数为1到100分。...