设为首页 加入收藏

TOP

MongoDB Helper的简单封装(一)
2015-11-21 01:51:09 来源: 作者: 【 】 浏览:0
Tags:MongoDB Helper 简单 封装
db.properties
#mongodb数据库配置文件

#数据库服务器所在的ip地址
ip=127.0.0.1 

#mongodb服务端口号
port=27017

#要连接的库
dbName=yc

#用户名
uname=

#密码
password=

#默认的连接集合
collectionName=voting

DBHelper
package com.yc.votingsys.dao;


import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.WriteResult;
import com.yc.votingsys.utils.LogUtil;
import com.yc.votingsys.utils.StringUtil;


public class DBHelper {
private static Mongo mongo=null;
private DB db=null;
private DBCollection collection=null;

/**
 * 连接到服务器
 */
static{
try {
mongo= new Mongo(MyPro.getInstance().getProperty("id"),Integer.parseInt( MyPro.getInstance().getProperty("port")) );
} catch (UnknownHostException e) {
LogUtil.log.error(e.toString());
e.printStackTrace();
} catch (MongoException e) {
LogUtil.log.error(e.toString());
e.printStackTrace();
}  
}

/**
 * 获取数据库连接
 * @param dbName:数据库名
 * @param uname:登陆数据库的用户名
 * @param pwd:登陆密码
 * @return:成功返回true
 */
public boolean getDb(String dbName,String uname,String pwd){
db=mongo.getDB(MyPro.getInstance().getProperty("dbName"));

//校验用户密码是否正确 
if(!StringUtil.isNull(uname) && !StringUtil.isNull(pwd)){ //如果给定了用户名和密码
if (!db.authenticate(uname, pwd.toCharArray())){  
LogUtil.log.error("用户名或密码错误,连接MongoDB数据库失败....");
return false;
}else{  
LogUtil.log.error("连接MongoDB数据库成功...."); 
return true;
}
}else{ //如果没有给定,则读取配置文件中配置的用户名和密码
String unames=MyPro.getInstance().getProperty("uname");
String pwds=MyPro.getInstance().getProperty("password");

//校验用户密码是否正确 
if(!StringUtil.isNull(unames) && !StringUtil.isNull(pwds)){
if (!db.authenticate(unames, pwds.toCharArray())){  
LogUtil.log.error("用户名或密码错误,连接MongoDB数据库失败....");
return false;
}else{  
LogUtil.log.error("连接MongoDB数据库成功...."); 
return true;
}
}else{
return true;
}
}
}

/**
 * 关闭数据库连接
 * @param mongo:服务器
 * @param db:数据库
 */
public void closeAll(Mongo mongo,DB db){
if(db!=null){
db.requestDone();
}
//
if(mongo!=null){
//
mongo.close();
//
}
}

/**
 * 获取指定的集合
 * @param collectionName:集合名称
 * @param dbName:数据库名
 * @param uname:登陆数据库的用户名
 * @param pwd:登陆密码
 * @return:返回获取到的集合
 */
public DBCollection getDBCollection(String collectionName,String dbName,String uname,String pwd){
if(getDb(dbName,uname,pwd)){ //连接数据库成功
db.requestStart(); //启动
if(collectionName==null){
collectionName=MyPro.getInstance().getProperty("collectionName");
}
collection=db.getCollection(collectionName); //获取指定的集合
}else{
throw new RuntimeException("数据库连接失败,请检查用户名和密码...");
}
return collection;
}

/**
 * 添加对象
 * @param map
 * @param collection
 * @return
 */
public int addObject(Map map,String collectionName){
WriteResult result=null;
try {
if(collectionName==null){
collection=this.getDBCollection(null, null, null
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇如何注册diskgroup到集群 下一篇数据挖掘基础:在数据中寻找相关的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: