首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
数据库
> 详细
MongoDB接口类函数
时间:
2015-03-13 00:18:27
阅读:
239
评论:
0
收藏:
0
[点我收藏+]
标签:
【接口类定义】
[java]
view plain
copy
/**
* 项目名: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);
}
【借口类实现】
[java]
view plain
copy
/**
* 项目名: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接口类函数
标签:
原文地址:http://www.cnblogs.com/yedushusheng/p/4334016.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
数据库进阶
2021-07-29
在 Oracle 数据库中执行 SQL 语句遇到特殊字符的转义方式
2021-07-28
Windows Logstash同步 Sqlserver 到Elasticsearch
2021-07-26
mysql数据库(11):恢复数据
2021-07-26
mysql数据库(9):常用查询的例子
2021-07-26
SQLAlchemy 多对多
2021-07-26
ClickHouse的JDBC连接
2021-07-26
Apache HBase 1.7.1 发布,分布式数据库
2021-07-26
数据库常用架构和同步工作原理
2021-07-26
MySQL数据库设计规范(仅供参考)
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!