婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Java操作MongoDB數據庫示例分享

Java操作MongoDB數據庫示例分享

熱門標簽:智能電銷機器人銷售話術 企業智能外呼系統價格多少 高德地圖標注商戶位置 福州電銷機器人源代碼 徐州ai電銷機器人原理 兗州電話外呼營銷系統 機器人外呼系統軟件存在問題 南京400電話怎樣辦理 沈陽營銷電銷機器人招商

MongoDB是一個文檔型數據庫,是NOSQL家族中最重要的成員之一,以下代碼封裝了MongoDB的基本操作。

MongoDBConfig.java

package com.posoftframework.mongodb;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import com.mongodb.DB;
import com.mongodb.Mongo;
/**
 * MongoDB配置類
 * 
 * @author yongtree
 * @date 2010-7-7 下午07:45:08
 * @version 1.0
 */
public class MongoDBConfig {
  private static Mongo mongo;
  private static DB db;
  private static final String MONGO_DB_ADDRESS = "localhost";
  private static final int MONGO_DB_PORT = 27017;
  private static final String MONGO_DB_USERNAME = "root";
  private static final String MONGO_DB_PASSWORD = "root";
  private static final String MONGO_DB_DBNAME = "mongodb";
  private static final String MONGO_DB_RESOURCE_FILE = "mongodb.cfg.properties";
  /**
   * Mongo數據庫參數
   */
  private static MapString, String> cfgMap = new HashMapString, String>();
  private static HashtableString, DB> mongoDBs = new HashtableString, DB>();
  /**
   * 初始化Mongo的數據庫
   */
  static {
    init();
  }
  public static File getConfigFile() {
    String path = MongoDBConfig.class.getResource("/").getPath();
    String fileName = path + MONGO_DB_RESOURCE_FILE;
    File file = new File(fileName);
    if (file.exists()) {
      return file;
    }
    return null;
  }
  @SuppressWarnings("unchecked")
  private static void initCfgMap() {
    File file = getConfigFile();
    if (file != null) {
      Properties p = new Properties();
      try {
        p.load(new FileInputStream(file));
        for (Enumeration enu = p.propertyNames(); enu.hasMoreElements();) {
          String key = (String) enu.nextElement();
          String value = (String) p.getProperty(key);
          cfgMap.put(key, value);
        }
      } catch (IOException e) {
        System.out.println("記載Mongo配置文件失敗!");
        e.printStackTrace();
      }
    } else {
      cfgMap.put("mongo.db.address", MONGO_DB_ADDRESS);
      cfgMap.put("mongo.db.port", String.valueOf(MONGO_DB_PORT));
      cfgMap.put("mongo.db.username", MONGO_DB_USERNAME);
      cfgMap.put("mongo.db.password", MONGO_DB_PASSWORD);
      cfgMap.put("mongo.db.dbname", MONGO_DB_DBNAME);
    }
  }
  /**
   * 初始化Mongo數據庫
   */
  private static void init() {
    initCfgMap();
    try {
      String address = cfgMap.get("mongo.db.address");
      int port = Integer.parseInt(cfgMap.get("mongo.db.port").toString());
      String dbName = cfgMap.get("mongo.db.dbname");
      String username = cfgMap.get("mongo.db.username");
      String password = cfgMap.get("mongo.db.password");
      mongo = new Mongo(address, port);
      if (dbName != null  !"".equals(dbName)) {
        db = mongo.getDB(dbName);
        if (username != null  !"".equals(username)) {
          db.addUser(username, password.toCharArray());
        }
        mongoDBs.put(dbName, db);
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  /**
   * 得到Mongo的實例
   * 
   * @return
   */
  public static Mongo getMongo() {
    return mongo;
  }
  /**
   * 得到Mongo的圖片數據庫
   * 
   * @return
   */
  public static DB getDB() {
    return db;
  }
  public static ListString> getDBNames() {
    return mongo.getDatabaseNames();
  }
  /**
   * 根據數據庫名稱,得到數據庫br/>
   * 如果不存在,則創建一個該名稱的數據庫,并設置用戶名和密碼為配置文件中的參數值/br>
   * 
   * @param dbName
   * @return
   */
  public static DB getDBByName(String dbName) {
    DB db = mongo.getDB(dbName);
    if (!mongoDBs.contains(db)) {
      db.addUser(cfgMap.get("mongo.db.username"), cfgMap.get(
          "mongo.db.password").toCharArray());
      mongoDBs.put(dbName, db);
    }
    return db;
  }
}

MongoService.java

/************************* 版權聲明 *********************************
 *                                                               *
 *           版權所有:百洋軟件                                                    *
 *     Copyright (c) 2010 by www.po-soft.com                        *
 *                                                               *
 ************************* 變更記錄 *********************************
 *
 * 創建者:yongtree  創建日期: 2010-7-7
 * 備注:
 * 
 * 修改者:    修改日期:
 * 備注:
 * 
 */
package com.posoftframework.mongodb;
import java.util.List;
import java.util.Map;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
/**
 * 操作MongoDB的DAO接口
 * 
 * @author yongtree
 * @date 2010-7-7 下午04:44:43
 * @version 1.0
 */
public interface MongoService {
  public abstract DBCollection getCollection();
  /**
   * 根據數據集合的Map,插入數據 map的key對應數據庫中的DBCollection的key值
   * 
   * @param obj
   */
  public abstract DBObject insert(DBObject obj);
  /**
   * 根據ListMapString,Object>>結構的數據集合,插入數據
   * 
   * @param list
   */
  public abstract void insertBatch(ListDBObject> list);
  /**
   * 按照條件參數集合map,刪除數據
   * 
   * @param map
   */
  public abstract void delete(DBObject obj);
  /**
   * 按照多種條件的并集,批量刪除數據
   * 
   * @param list
   */
  public abstract void deleteBatch(ListDBObject> list);
  /**
   * 得到Collection()總的記錄數
   * 
   * @return
   */
  public abstract long getCollectionCount();
  public abstract long getCount(DBObject query);
  public abstract ListDBObject> find(DBObject query);
  public abstract ListDBObject> find(DBObject query,DBObject sort);
  public abstract ListDBObject> find(DBObject query,DBObject sort,int start,int limit);
  /**
   * 根據whereFields參數,更新setFields值
   * 
   * @param setFields
   * @param whereFields
   */
  public abstract void update(DBObject setFields,
      DBObject whereFields);
  public abstract ListDBObject> findAll();
  /**
   * 根據ID找到唯一數據 有1個id字段標記
   * 
   * @param id
   * @return
   */
  public abstract DBObject getById(String id);
  /**
   * 獲取所有數據庫名稱
   * 
   * @return
   */
  public ListString> getAllDBNames();
  public abstract String getDbName();
  public abstract void setDbName(String dbName);
  public abstract DB getDb();
  public abstract String getCollName();
  public abstract void setCollName(String collName);
}

MongoServiceImpl.java

/************************* 版權聲明 *********************************
 *                                                               *
 *           版權所有:百洋軟件                                                    *
 *     Copyright (c) 2010 by www.po-soft.com                        *
 *                                                               *
 ************************* 變更記錄 *********************************
 *
 * 創建者:yongtree  創建日期: 2010-7-7
 * 備注:
 * 
 * 修改者:    修改日期:
 * 備注:
 * 
 */
package com.posoftframework.mongodb;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
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;
/**
 * 
 * @author yongtree
 * @date 2010-7-7 下午07:22:15
 * @version 1.0
 */
public class MongoServiceImpl implements MongoService {
  private String dbName;
  private String collName;
  private DB db;
  public MongoServiceImpl(String dbName, String collName) {
    this.dbName = dbName;
    this.collName = collName;
    try {
      db = MongoDBConfig.getDBByName(this.dbName);
    } catch (Throwable e) {
      e.printStackTrace();
    }
  }
  public MongoServiceImpl() {
    getDb();
  }
  public DBCollection getCollection() {
    return db.getCollection(this.collName);
  }
  public DBObject map2Obj(MapString, Object> map) {
    DBObject obj = new BasicDBObject();
    if (map.containsKey("class")  map.get("class") instanceof Class)
      map.remove("class");
    obj.putAll(map);
    return obj;
  }
  public DBObject insert(DBObject obj) {
    getCollection().insert(obj);
    return obj;
  }
  public void insertBatch(ListDBObject> list) {
    if (list == null || list.isEmpty()) {
      return;
    }
    ListDBObject> listDB = new ArrayListDBObject>();
    for (int i = 0; i  list.size(); i++) {
      listDB.add(list.get(i));
    }
    getCollection().insert(listDB);
  }
  public void delete(DBObject obj) {
    getCollection().remove(obj);
  }
  public void deleteBatch(ListDBObject> list) {
    if (list == null || list.isEmpty()) {
      return;
    }
    for (int i = 0; i  list.size(); i++) {
      getCollection().remove(list.get(i));
    }
  }
  public long getCollectionCount() {
    return getCollection().getCount();
  }
  public long getCount(DBObject obj) {
    if (obj != null)
      return getCollection().getCount(obj);
    return getCollectionCount();
  }
  public ListDBObject> find(DBObject obj) {
    DBCursor cur = getCollection().find(obj);
    return DBCursor2list(cur);
  }
  @Override
  public ListDBObject> find(DBObject query, DBObject sort) {
    DBCursor cur;
    if (query != null) {
      cur = getCollection().find(query);
    } else {
      cur = getCollection().find();
    }
    if (sort != null) {
      cur.sort(sort);
    }
    return DBCursor2list(cur);
  }
  @Override
  public ListDBObject> find(DBObject query, DBObject sort, int start,
      int limit) {
    DBCursor cur;
    if (query != null) {
      cur = getCollection().find(query);
    } else {
      cur = getCollection().find();
    }
    if (sort != null) {
      cur.sort(sort);
    }
    if (start == 0) {
      cur.batchSize(limit);
    } else {
      cur.skip(start).limit(limit);
    }
    return DBCursor2list(cur);
  }
  private ListDBObject> DBCursor2list(DBCursor cur) {
    ListDBObject> list = new ArrayListDBObject>();
    if (cur != null) {
      list = cur.toArray();
    }
    return list;
  }
  public void update(DBObject setFields, DBObject whereFields) {
    getCollection().updateMulti(setFields, whereFields);
  }
  public ListDBObject> findAll() {
    DBCursor cur = getCollection().find();
    ListDBObject> list = new ArrayListDBObject>();
    if (cur != null) {
      list = cur.toArray();
    }
    return list;
  }
  public DBObject getById(String id) {
    DBObject obj = new BasicDBObject();
    obj.put("_id", new ObjectId(id));
    DBObject result = getCollection().findOne(obj);
    return result;
  }
  public String getDbName() {
    return dbName;
  }
  public void setDbName(String dbName) {
    this.dbName = dbName;
    this.db = MongoDBConfig.getDBByName(this.dbName);
  }
  public String getCollName() {
    return collName;
  }
  public void setCollName(String collName) {
    this.collName = collName;
  }
  public DB getDb() {
    if (this.db == null) {
      if (this.dbName == null) {
        this.db = MongoDBConfig.getDB();
      } else {
        this.db = MongoDBConfig.getDBByName(this.dbName);
      }
    }
    return this.db;
  }
  public ListString> getAllDBNames() {
    return MongoDBConfig.getDBNames();
  }
}

您可能感興趣的文章:
  • Java的idea連接mongodb數據庫的詳細教程
  • Java操作MongoDB數據庫方法詳解
  • Java單例模式下的MongoDB數據庫操作工具類
  • Java操作Mongodb數據庫實現數據的增刪查改功能示例
  • 【MongoDB for Java】Java操作MongoDB數據庫
  • java實現mongodb的數據庫連接池
  • Java操作MongoDB數據庫的示例代碼

標簽:鶴崗 丹東 邯鄲 本溪 景德鎮 昭通 大理 吉安

巨人網絡通訊聲明:本文標題《Java操作MongoDB數據庫示例分享》,本文關鍵詞  Java,操作,MongoDB,數據庫,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Java操作MongoDB數據庫示例分享》相關的同類信息!
  • 本頁收集關于Java操作MongoDB數據庫示例分享的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产亚洲欧美日韩在线一区| 欧美精品一区在线观看| 欧美精品自拍偷拍动漫精品| 国产日产欧美一区二区视频| 亚洲第一av色| av欧美精品.com| 日韩网站在线看片你懂的| 最新久久zyz资源站| 激情综合色综合久久| 欧美在线一区二区| 国产精品女上位| 久久99国产精品久久99| 欧美高清激情brazzers| 亚洲女同一区二区| 高清不卡在线观看| 2017欧美狠狠色| 色综合天天综合在线视频| 一区二区成人在线| 91麻豆精品91久久久久同性| 国产乱妇无码大片在线观看| 亚洲人成影院在线观看| 欧美色图天堂网| 青青国产91久久久久久| 中文字幕一区三区| 91精品国产黑色紧身裤美女| 岛国av在线一区| 亚洲国产综合视频在线观看| 国产婷婷一区二区| 日韩欧美国产综合一区 | 在线不卡a资源高清| 亚洲一区二区三区四区在线免费观看 | 欧美性大战久久久久久久蜜臀| 色网综合在线观看| 久久一夜天堂av一区二区三区| 色乱码一区二区三区88| 国产精品久久一级| 波多野结衣视频一区| 国产精品国产自产拍高清av| 国产成人av电影免费在线观看| 久久综合网色—综合色88| 久久国产夜色精品鲁鲁99| 日韩久久久久久| 美女视频黄久久| 久久久午夜电影| voyeur盗摄精品| 一区二区三区日韩欧美| 欧美日韩在线一区二区| 日本不卡一区二区| 欧美肥妇毛茸茸| 精彩视频一区二区| 国产午夜精品久久久久久久| 国产91精品久久久久久久网曝门 | 日韩三级av在线播放| 久久99久久99| 久久久不卡影院| 91网站在线观看视频| 亚洲精品国产成人久久av盗摄 | 国产婷婷色一区二区三区在线| 国产成人av电影在线| 一个色在线综合| 精品奇米国产一区二区三区| 成人免费看黄yyy456| 一区二区欧美视频| 精品毛片乱码1区2区3区| 99re热视频这里只精品| 日本欧美一区二区三区乱码| 成人免费观看av| 国产精品网站在线播放| 欧美无砖砖区免费| 国产一区二区伦理片| 亚洲色图视频网| 欧美成人在线直播| 91小视频在线| 国模大尺度一区二区三区| 亚洲男人的天堂在线aⅴ视频 | 在线视频国内自拍亚洲视频| 美女在线一区二区| 1024成人网| 久久久国产午夜精品| 欧美少妇一区二区| 成人av免费在线| 久久国产精品无码网站| 亚洲国产视频在线| 国产精品欧美一区二区三区| 精品国产乱码久久久久久图片 | 亚洲色图视频网| 欧美mv和日韩mv的网站| 91久久精品日日躁夜夜躁欧美| 国产成人午夜片在线观看高清观看| 丝袜诱惑亚洲看片| 综合婷婷亚洲小说| 国产人成一区二区三区影院| 91麻豆精品国产91久久久久 | 不卡视频一二三四| 久久97超碰色| 蜜桃视频一区二区| 亚洲综合在线电影| 色婷婷综合久久久中文一区二区| 中文字幕一区二区在线播放| 国产午夜精品一区二区三区视频| 欧美一级精品在线| 欧美日韩国产123区| 91精品福利在线| 色婷婷av一区二区三区软件| 成人黄页在线观看| 成人av午夜影院| 成人av手机在线观看| 国产成人av电影在线播放| 国产精品一二三四| 国产乱码精品1区2区3区| 久久99国产精品麻豆| 美女免费视频一区二区| 免费人成精品欧美精品| 日韩不卡一二三区| 日韩国产欧美视频| 蜜臀av国产精品久久久久| 美腿丝袜亚洲三区| 加勒比av一区二区| 国产精品一区免费在线观看| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 色94色欧美sute亚洲13| 色噜噜狠狠色综合中国| 欧美亚洲另类激情小说| 欧美日韩日日摸| 日韩欧美在线网站| 久久一二三国产| 国产精品理论在线观看| 亚洲女与黑人做爰| 性欧美疯狂xxxxbbbb| 久久99九九99精品| www.亚洲人| 欧美网站大全在线观看| 日韩精品一区二区三区中文精品 | 日韩限制级电影在线观看| 在线观看国产91| 极品销魂美女一区二区三区| 成人综合激情网| 欧美专区亚洲专区| 日韩欧美中文一区| 国产蜜臀av在线一区二区三区| 一级日本不卡的影视| 久久99精品久久久久久| 高清beeg欧美| 欧美日韩国产成人在线91| 久久久美女毛片| 亚洲精品亚洲人成人网 | 国产婷婷色一区二区三区四区| 欧美精品久久天天躁| 欧美一区二区三区小说| 欧美成人伊人久久综合网| 欧美zozozo| 2023国产一二三区日本精品2022| 久久一区二区视频| 亚洲嫩草精品久久| 天堂久久一区二区三区| 美国毛片一区二区| 成人黄色小视频在线观看| 欧美主播一区二区三区| 精品日产卡一卡二卡麻豆| 亚洲桃色在线一区| 加勒比av一区二区| 在线播放亚洲一区| 精品女同一区二区| 亚洲综合丝袜美腿| 精品视频免费在线| 久久久国产一区二区三区四区小说 | 国产精品久久久久久久久免费丝袜| 国产视频不卡一区| 肉丝袜脚交视频一区二区| 欧美军同video69gay| 色嗨嗨av一区二区三区| 成人在线综合网站| 欧美日韩国产一区二区三区地区| xf在线a精品一区二区视频网站| 亚洲一区二区美女| 成人av片在线观看| 久久蜜桃av一区二区天堂| 日本 国产 欧美色综合| 在线观看国产一区二区| 综合av第一页| 成人h版在线观看| 久久久久一区二区三区四区| 日本v片在线高清不卡在线观看| 在线亚洲+欧美+日本专区| 中文字幕高清不卡| 高清不卡一区二区在线| 久久久www免费人成精品| 精品一区二区三区免费观看| 日韩色在线观看| 麻豆国产91在线播放| 日韩欧美激情在线| 青青青伊人色综合久久| 欧美精品vⅰdeose4hd| 欧美电影免费观看高清完整版在线 | 亚洲一线二线三线视频| 93久久精品日日躁夜夜躁欧美| 国产精品久久夜| 91视频在线观看| 亚洲狠狠丁香婷婷综合久久久| 日本韩国精品在线|