MongoDB接口类函数
- /**
- * 项目名:SpiderCrawler
- * 文件名:MongoDBDao.java
- * 描述:TODO(用一句话描述该文件做什么)
- */
- package com.newsTest.dao;
- import java.util.ArrayList;
- import com.mongodb.DB; //导入数据库DB
- import com.mongodb.DBCollection; //导入集合DBCollection
- import com.mongodb.DBObject; //导入对象DBObject
- /**
- * 类名: MongoDBDao
- * 包名: com.newsTest.dao
- * 描述: TODO(这里用一句话描述这个类的作用)
- */
- public interface MongoDBDao {
- /**
- * 方法名:getDb
- * 描述:获取指定的mongodb数据库
- * @param dbName
- * @return
- */
- public DB getDb(String dbName);
- /**
- * 方法名:getCollection
- * 描述:获取指定mongodb数据库的collection集合
- * @param dbName 数据库名
- * @param collectionName 数据库集合
- * @return
- */
- public DBCollection getCollection(String dbName, String collectionName);
- /**
- * 方法名:inSert
- * 描述:向指定的数据库中添加给定的keys和相应的values
- * @param dbName
- * @param collectionName
- * @param keys
- * @param values
- * @return
- */
- public boolean inSert(String dbName, String collectionName, String[] keys, Object[] values);
- /**
- *
- * 方法名:delete
- * 作者:zhouyh
- * 创建时间:2014-8-30 下午04:09:00
- * 描述:删除数据库dbName中,指定keys和相应values的值
- * @param dbName
- * @param collectionName
- * @param keys
- * @param values
- * @return
- */
- public boolean delete(String dbName, String collectionName, String[] keys, Object[] values);
- /**
- * 方法名:find
- * 描述:从数据库dbName中查找指定keys和相应values的值
- * @param dbName
- * @param collectionName
- * @param keys
- * @param values
- * @param num
- * @return
- */
- public ArrayList<DBObject> find(String dbName, String collectionName, String[] keys, Object[] values, int num);
- /**
- * 方法名:update
- * 作者:zhouyh
- * 创建时间:2014-8-30 下午04:17:54
- * 描述:更新数据库dbName,用指定的newValue更新oldValue
- * @param dbName
- * @param collectionName
- * @param oldValue
- * @param newValue
- * @return
- */
- public boolean update(String dbName, String collectionName, DBObject oldValue, DBObject newValue);
- /**
- * 方法名:isExit
- * 描述:判断给定的keys和相应的values在指定的dbName的collectionName集合中是否存在
- * @param dbName
- * @param collectionName
- * @param keys
- * @param values
- * @return
- */
- public boolean isExit(String dbName, String collectionName, String key, Object value);
- }
- /**
- * 项目名:SpiderCrawler
- * 文件名:MongoDBDaoImpl.java
- * 描述:TODO(用一句话描述该文件做什么)
- */
- package com.newsTest.dao.impl;
- import java.net.UnknownHostException; //导入URL的相关Exception的jar包
- import java.util.ArrayList;
- import com.newsTest.dao.MongoDBDao; //导入接口类的定义
- import com.mongodb.BasicDBObject;
- import com.mongodb.DB;
- import com.mongodb.DBCollection;
- import com.mongodb.DBCursor; //导入游标
- import com.mongodb.DBObject;
- import com.mongodb.MongoClient;
- import com.mongodb.MongoClientOptions;
- import com.mongodb.MongoException;
- import com.mongodb.WriteResult;
- /**
- * 类名: MongoDBDaoImpl
- * 包名: com.newsTest.dao.impl
- * 描述: TODO(这里用一句话描述这个类的作用)
- */
- public class MongoDBDaoImpl implements MongoDBDao{
- /*MongoDBDao是前面自己定义的接口,而非系统自带*/
- /**
- * MongoClient的实例代表数据库连接池,是线程安全的,可以被多线程共享,客户端在多线程条件下仅维持 一个实例即可
- * Mongo是非线程安全的,目前mongodb API中已经建议用MongoClient替代Mongo
- */
- private MongoClient mongoClient = null;
- /**
- * 私有的构造函数
- */
- private MongoDBDaoImpl(){
- if(mongoClient == null){
- MongoClientOptions.Builder build = new MongoClientOptions.Builder();
- build.connectionsPerHost(50);
- //与目标数据库能够建立的最大connection数量为50
- build.autoConnectRetry(true);
- //自动重连数据库启动
- build.threadsAllowedToBlockForConnectionMultiplier(50);
- //如果当前所有的connection都在使用中,则每个connection上可以有50个线程排队等待
- /*
- * 一个线程访问数据库的时候,在成功获取到一个可用数据库连接之前的最长等待时间为2分钟
- * 这里比较危险,如果超过maxWaitTime都没有获取到这个连接的话,该线程就会抛出Exception
- * 故这里设置的maxWaitTime应该足够大,以免由于排队线程过多造成的数据库访问失败
- */
- build.maxWaitTime(1000*60*2);
- build.connectTimeout(1000*60*1); //与数据库建立连接的timeout设置为1分钟
- MongoClientOptions myOptions = build.build();
- try {
- //数据库连接实例
- mongoClient = new MongoClient("127.0.0.1", myOptions);
- } catch (UnknownHostException e) {
- // TODO 这里写异常处理的代码
- e.printStackTrace();
- } catch (MongoException e){
- e.printStackTrace();
- }
- }
- }
MongoDB接口类函数的更多相关文章
- Python Mongodb接口
Python Mongodb接口 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. 同时,MongoDB 是一个介于关系 ...
- 【翻译】MongoDB指南/引言
[原文地址]https://docs.mongodb.com/manual/ 引言 MongoDB是一种开源文档型数据库,它具有高性能,高可用性,自动扩展性 1.文档数据库 MongoDB用一个文档来 ...
- Mongodb相关 (Shell命令 / mongoose)
Mongodb相关 1.创建一个文件夹作为数据库存放的目录 2.打开cmd cd到Mongodb/bin目录去 3.执行mongod --dbpath "第一项创建的文件夹(数据库数据存放目 ...
- 【一】mongodb安装及配置
一.mongodb安装 1.下载并解压 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.0.tgz tar ...
- 技术讨论]mongodb驱动的正确使用方法
原文地址:http://cnodejs.org/topic/5190d61263e9f8a542acd83b mongo数据库在nodejs平台有2个常用驱动,mongodb和mongoose,mon ...
- 如何使用MongoDB+Springboot实现分布式ID?
转载请标明出处: http://blog.csdn.net/forezp/article/details/69056017 本文出自方志朋的博客 一.背景 如何实现分布式id,搜索相关的资料,一般会给 ...
- MongoDB(5)- Document 文档相关
Documents MongoDB 的文档可以理解为关系型数据库(Mysql)的一行记录 MongoDB 将数据记录为 BSON 格式的文档 BSON 是 JSON 文档的二进制表示,但它支持的数据类 ...
- nosql数据库学习
1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上 ...
- 15个nosql数据库
1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上 ...
随机推荐
- [Vuejs] 点击单选框触发两次点击事件的处理
<el-radio-group v-model="uploadStatus" class="upload-status-radio"> <el ...
- linux c++ 实现http请求
main.cpp #include HttpReq.h #include <string.h> int main(void) { HttpRequest* Http; char http_ ...
- CSS基本样式-文本属性
字体属性 文本属性呢,自我认为就是写文档的一些格式属性,例如:字体颜色,字体加粗,字体大小,字体类型等,而且我们在输出测试用例报告的时候也可以用到这些属性,对测试报告进行优化. <html> ...
- 01: jenkins简介与安装
jenkins参考博文:https://www.w3cschool.cn/jenkins/jenkins-173a28n4.html Jenkins中文官网:http://www.jenkins.or ...
- django admin站点美化
使用django-simpleui 安装 pip install django-simpleui 源码地址 https://github.com/newpanjing/simpleui django ...
- JavaSE基础:泛型
泛型 1.引入 情景模式描述,假设完成一个学生的成绩的情况: 整数: math=80,english=70 小数: math=85.6,englisth=77.8 字符串: math="66 ...
- 常用的一些js校验
参考:https://blog.csdn.net/xxjmlgb/article/details/49467717 var valNull;//非空校验 var valSpecial;//特殊字符校验 ...
- mycat的wrapper.log日志中发现主从切换报错
可能是MySQL在某些情况下重启(密切关注重启现象,关注日志,找出原因),导致mycat切换主从.由于设置了单向主从,mycat将从库切换为主库,原来的主库宕机.后来重新更新dnindex.conf之 ...
- batch文件改修中遇到的sql问题
代码: <?php ////////////////////////////////////////////////////////// // //ダイハツ車種 car_cd毎 平均価格 JSO ...
- mybatis 动态SQL查询总结
背景 ××项目需要提供系统部分函数第三方调用接口,基于安全性和避免暴露数据库表信息的基础上进行函数接口的设计,根据第三方调用身份的权限提供某张表的自定义集合.本项目基于mybatis的持久层框架,支持 ...