MongoDB Java 通用方法

030472875ken 12年前發布 | 139K 次閱讀 MongoDB NoSQL數據庫

最近寫了一個針對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<String, Object> 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<Map<String, Object>> list) { if (list == null || list.isEmpty()) {

          return;
      

      } try {

          List<DBObject> listDB = new ArrayList<DBObject>();
          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<String, Object> map) { DBObject obj = map2Obj(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<Map<String, Object>> 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<String, Object> 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<String, Object> setFields,

          Map<String, Object> 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<DBObject> findAll(String collection) { return getCollection(collection).find().toArray(); }

      /**

    • 查找(返回一個對象)
    • @param map
    • @param collection */ public DBObject findOne(String collection,Map<String, Object> map) { DBCollection coll = getCollection(collection); return coll.findOne(map2Obj(map)); }

      /**

    • 查找(返回一個List<DBObject>)
    • @param <DBObject>
    • @param map
    • @param collection
    • @throws Exception */ public List<DBObject> find(String collection,Map<String, Object> map) throws Exception { DBCollection coll = getCollection(collection); DBCursor c = coll.find(map2Obj(map)); if (c != null)
          return c.toArray();
      
      else
          return null;
      
      }</pre>
 本文由用戶 030472875ken 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!