热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java操作MongoDB数据库的封装类

MongoDBJava通用方法最近写了一个针对MongoDB的一些常用操作的公共类,希望对初学者有帮助。packagemodel.dao;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;
MongoDB Java 通用方法 最近写了一个针对MongoDB的一些常用操作的公共类,希望对初学者有帮助。
package model.dao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.bson.types.ObjectId;
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;
/**
* MongoDB Manager
* @author Ken Chau
*
*/
public class MongoDBManager {
     private static Logger log = Logger.getLogger(MongoDBManager.class);
     private static Mongo mg = null;
     private static DB db = null;
     private final static MongoDBManager instance = new MongoDBManager();
     /**
     * 实例化
     * @return
     * @throws Exception
     */
     public static MongoDBManager getInstance() throws Exception {
            return instance;
     }
     static {
          try {
               mg = new Mongo(HOST, PORT);
              db=mg.getDB(DB);
          } catch (Exception e) {
               log.error("Can't connect MongoDB!");
              e.printStackTrace();
          }
     }
     /**
     * 获取集合(表)
     * @param collection
     */
     public static DBCollection getCollection(String collection) {
          return db.getCollection(collection);
     }
     /**
     * ----------------------------------分割线--------------------------------------
     */
     /**
     * 插入
     * @param collection
     * @param map
     */
     public void insert(String collection , Map map) {
          try {
               DBObject dbObject = map2Obj(map);
               getCollection(collection).insert(dbObject);
          } catch (MongoException e) {
               log.error("MongoException:" + e.getMessage());
          }
     }
     /**
     * 批量插入
     * @param collection
     * @param list
     */
     public void insertBatch(String collection ,List> list) {
          if (list == null || list.isEmpty()) {
               return;
          }
          try {
               List listDB = new ArrayList();
               for (int i = 0; i < list.size(); i++) {
                    DBObject dbObject = map2Obj(list.get(i));
                    listDB.add(dbObject);
               }
               getCollection(collection).insert(listDB);
          } catch (MongoException e) {
               log.error("MongoException:" + e.getMessage());
          }
     }
     /**
     * 删除
     * @param collection
     * @param map
     */
     public void delete(String collection ,Map map) {
          DBObject obj = map2Obj(map);
          getCollection(collection).remove(obj);
     }
     /**
       * 删除全部
       * @param collection
       * @param map
       */
     public void deleteAll(String collection) {
          List 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> list) {
          if (list == null || list.isEmpty()) {
               return;
          }
          for (int i = 0; i < list.size(); i++) {
               getCollection(collection).remove(map2Obj(list.get(i)));
          }
     }
     /**
     * 计算满足条件条数
     * @param collection
     * @param map
     */
     public long getCount(String collection,Map map) {
          return getCollection(collection).getCount(map2Obj(map));
     }
     /**
     * 计算集合总条数
     * @param collection
     * @param map
     */
     public long getCount(String collection) {
          return getCollection(collection).find().count();
     }
     /**
     * 更新
     * @param collection
     * @param setFields
     * @param whereFields
     */
     public void update(String collection,Map setFields,
               Map whereFields) {
          DBObject obj1 = map2Obj(setFields);
          DBObject obj2 = map2Obj(whereFields);
          getCollection(collection).updateMulti(obj1, obj2);
     }
     /**
     * 查找对象(根据主键_id)
     * @param collection
     * @param _id
     */
     public DBObject findById(String collection,String _id) {
          DBObject obj = new BasicDBObject();
          obj.put("_id", ObjectId.massageToObjectId(_id));
          return getCollection(collection).findOne(obj);
     }
     /**
     * 查找集合所有对象
     * @param collection
     */
     public List findAll(String collection) {
          return getCollection(collection).find().toArray();
     }
     /**
     * 查找(返回一个对象)
     * @param map
     * @param collection
     */
     public DBObject findOne(String collection,Map map) {
          DBCollection coll = getCollection(collection);
          return coll.findOne(map2Obj(map));
     }
     /**
     * 查找(返回一个List
     * @param 
     * @param map
     * @param collection
     * @throws Exception
     */
     public List find(String collection,Map map) throws Exception {
          DBCollection coll = getCollection(collection);
          DBCursor c = coll.find(map2Obj(map));
          if (c != null)
               return c.toArray();
          else
               return null;
     }

推荐阅读
author-avatar
yanghuimin
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有