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以上 ...
随机推荐
- 【VS开发】【图像处理】RGB各种格式
RGB格式 RGB组合格式 名字 RGB组合格式 描述 此格式用来匹配PC图形帧缓存.每个像素占据8,16,24或32个位,他们都是组合像素格式,其意为在内存中所有像素数据都是相邻排列的.当使用这些格 ...
- vue-cli 3 ----- 项目频繁发送‘sockjs-node/info’请求
在vue-cli3跑项目时发现了这个问题,浏览器一直在频繁发送这个请求,导致联调时很不方便,而且本地开发时项目也不能实时更新. 看了网上很多的 (1) 解决方案, 大多都是直接去node_modul ...
- flask config笔记
#从flask这个包中导入Flask这个类 #Flask这个类是项目的核心,以后很多操作都是基于这个类的对象 #注册url.注册蓝图等都是基于这个类的对象 from flask import Flas ...
- 关于Tomcat配置问题
一,部署并启动Tomcat服务器 Tomcat: 开源的 Servlet 容器. 解压 apache-tomcat-6.0.16.zip 到一个非中文目录下 配置一个环境变量. java_home(指 ...
- Book - 《Python编程:从入门到实践》
Tag:看<Python编程:从入门到实践>学习笔记 数据类型相关: 字符串str 改变大小写(临时):title首字母大写,upper全大写,lower全小写 删除空白(临时):rstr ...
- Android事件监听(一)——简介篇
Button.ImageButton事件 setOnClickListener 点击时触发 ListView事件 setOnItemSelectedListener 鼠标滚动时触发 set ...
- POJ - 2421 Constructing Roads(最小生成树&并查集
There are N villages, which are numbered from 1 to N, and you should build some roads such that ever ...
- Java Web开发技术教程入门-项目-读取用户注册信息
昨天说要补个项目来巩固下这几天学的知识,于是今天咱们就写一个读取用户注册信息的小项目.读取用户信息注册信息这个功能在各大网站都是很常见的.好,话不多说.开始我们的编程之旅! 软件环境:JDK9.0 ...
- mac osx sed 命令
$ sed -i "s/devicedemo/device/g" `grep devicedemo -rl ./` sed: 1: ".//.coveragerc&quo ...
- var与let变量for遍历的问题
var Liarry = document.getElementsByTagName('li'); /**方法一*描述:自执行函数,将变量当参数传入(闭包的思想,保存当前的值).*/ for (var ...