java连接mogodb

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;  


   } 
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值