1.
MongoConnection 类
package com.test.mongodb;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import com.mongodb.DB;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
public class MongoConnection {
protected static Logger logger = Logger.getLogger(MongoConnection.class);
private static MongoClient mongo = null;
private static String dbName = "test";//"db_flag";
private static String hosts = "127.0.0.1";//"10.0.0.91";
private static String ports = "27017";//"37017";
private static String userName = "db_flag";
private static String password = "db_flag";
private static DB db = null;
public static DB getDB() {
if (db == null) {
try {
init();
} catch (UnknownHostException e) {
logger.error(" mongodb init fail !"+e);
}
}
return db;
}
private static void init() throws UnknownHostException {
List<ServerAddress> addresses = new ArrayList<ServerAddress>();
List<MongoCredential> credential = new ArrayList<MongoCredential>();
if((hosts!=null)&&(ports!=null)){
String ips [] = hosts.split(",");
String port [] =ports.split(",");
if(ips.length!=port.length){
logger.warn("config is error");
return;
}else{
MongoCredential mc = null;
ServerAddress serverAddress = null;
for (int i = 0; i < ips.length; i++) {
//mc =MongoCredential.createMongoCRCredential(userName, dbName, password.toCharArray());
mc =MongoCredential.createScramSha1Credential(userName, dbName, password.toCharArray());
serverAddress= new ServerAddress(ips[i],Integer.parseInt(port[i]));
addresses.add(serverAddress);
credential.add(mc);
}
}
}else {
logger.warn("config is error");
return;
}
//mongo = new MongoClient(addresses,credential);
mongo = new MongoClient(addresses);
db = mongo.getDB(dbName);
}
public static void close(){
if(mongo!=null){
mongo.close();
}
}
}
2.MongoDBHandler
package com.test.mongodb;
import java.util.List;
import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoException;
public class MongoDBHandler {
private static DB db = null;
static {
db=MongoConnection.getDB();
}
/**
* 获取集合(表)
* @param collection
*/
public static DBCollection getCollection(String collection) {
return db.getCollection(collection);
}
/**
* ----------------------------------分割线--------------------------------------
*/
/**
* 插入
* @param collection
* @param map
*/
public static void insert(String collection , DBObject map) {
try {
DBObject dbObject = (map);
getCollection(collection).insert(dbObject);
} catch (MongoException e) {
e.printStackTrace();
}
}
/**
* 批量插入
* @param collection
* @param list
*/
public static void insertBatch(String collection ,List<DBObject> list) {
if (list == null || list.isEmpty()) {
return;
}
try {
getCollection(collection).insert(list);
} catch (MongoException e) {
e.printStackTrace();
}
}
/**
* 删除
* @param collection
* @param map
*/
public void delete(String collection ,DBObject map) {
DBObject obj = (map);
getCollection(collection).remove(obj);
}
/**
* 删除全部
* @param collection
* @param map
*/
public void deleteAll(String collection) {
List<DBObject> rs = findAll(collection);
if (rs != null && !rs.isEmpty()) {
for (int i = 0; i < rs.size(); i++) {
getCollection(collection).remove(rs.get(i));
}
}
}
/**
* 批量删除
* @param collection
* @param list
*/
public void deleteBatch(String collection,List<DBObject> list) {
if (list == null || list.isEmpty()) {
return;
}
for (int i = 0; i < list.size(); i++) {
getCollection(collection).remove((list.get(i)));
}
}
/**
* 计算满足条件条数
* @param collection
* @param map
*/
public long getCount(String collection,DBObject map) {
return getCollection(collection).getCount((map));
}
/**
* 计算集合总条数
* @param collection
* @param map
*/
public long getCount(String collection) {
return getCollection(collection).find().count();
}
/**
* 更新
* @param collection
* @param setFields
* @param whereFields
*/
public static void update(String collection,DBObject setFields,
DBObject whereFields) {
DBObject obj1 = (setFields);
DBObject obj2 = (whereFields);
getCollection(collection).update(obj2,obj1,true,false );
}
/**
* 查找对象(根据主键_id)
* @param collection
* @param _id
*/
/**
* 查找集合所有对象
* @param collection
*/
public List<DBObject> findAll(String collection) {
return getCollection(collection).find().toArray();
}
/**
* 查找(返回一个对象)
* @param map
* @param collection
*/
public static DBObject findOne(String collection,DBObject map) {
DBCollection coll = getCollection(collection);
return coll.findOne((map));
}
/**
* 查找(返回一个List<DBObject>)
* @param <DBObject>
* @param map
* @param collection
* @throws Exception
*/
public List<DBObject> find(String collection,DBObject map) throws Exception {
DBCollection coll = getCollection(collection);
DBCursor c = coll.find((map));
if (c != null)
return c.toArray();
else
return null;
}
public List<DBObject> find(String collection,DBObject map,int limit) throws Exception {
DBCollection coll = getCollection(collection);
DBCursor c = coll.find((map)).limit(limit);
if (c != null)
return c.toArray();
else
return null;
}
public List<DBObject> find(String collection,DBObject map,int limit,DBObject sort) throws Exception {
DBCollection coll = getCollection(collection);
DBCursor c = coll.find((map)).sort(sort).limit(limit);
if (c != null)
return c.toArray();
else
return null;
}
public DBCursor find(String collection,DBObject map,int limit,int skip,DBObject sort) throws Exception {
DBCollection coll = getCollection(collection);
DBCursor c = coll.find(map).sort(sort).skip(skip).limit(limit);
if (c != null)
return c;
else
return null;
}
public BasicDBList group(String collection,BasicDBObject cond, BasicDBObject xx, BasicDBObject initial, String reduce){
DBCollection coll = getCollection(collection);
String fn =null;
return (BasicDBList) coll.group( cond,xx, initial, reduce);
}
public DBCursor find(String collection,DBObject map,int limit,int skip) throws Exception {
DBCollection coll = getCollection(collection);
DBCursor c = coll.find((map)).skip(skip).limit(limit);
if (c != null)
return c;
else
return null;
}
}