日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

Java操作MongoDB數(shù)據(jù)庫示例分享

2020-10-29 18:53:09
字體:
供稿:網(wǎng)友

MongoDB是一個文檔型數(shù)據(jù)庫,是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數(shù)據(jù)庫參數(shù)   */  private static Map<String, String> cfgMap = new HashMap<String, String>();  private static Hashtable<String, DB> mongoDBs = new Hashtable<String, DB>();  /**   * 初始化Mongo的數(shù)據(jù)庫   */  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數(shù)據(jù)庫   */  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的圖片數(shù)據(jù)庫   *    * @return   */  public static DB getDB() {    return db;  }  public static List<String> getDBNames() {    return mongo.getDatabaseNames();  }  /**   * 根據(jù)數(shù)據(jù)庫名稱,得到數(shù)據(jù)庫<br/>   * 如果不存在,則創(chuàng)建一個該名稱的數(shù)據(jù)庫,并設(shè)置用戶名和密碼為配置文件中的參數(shù)值</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

/************************* 版權(quán)聲明 ********************************* *                                                               * *           版權(quán)所有:百洋軟件                                                    * *     Copyright (c) 2010 by www.po-soft.com                        * *                                                               * ************************* 變更記錄 ********************************* * * 創(chuàng)建者:yongtree  創(chuàng)建日期: 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();  /**   * 根據(jù)數(shù)據(jù)集合的Map,插入數(shù)據(jù) map的key對應(yīng)數(shù)據(jù)庫中的DBCollection的key值   *    * @param obj   */  public abstract DBObject insert(DBObject obj);  /**   * 根據(jù)List<Map<String,Object>>結(jié)構(gòu)的數(shù)據(jù)集合,插入數(shù)據(jù)   *    * @param list   */  public abstract void insertBatch(List<DBObject> list);  /**   * 按照條件參數(shù)集合map,刪除數(shù)據(jù)   *    * @param map   */  public abstract void delete(DBObject obj);  /**   * 按照多種條件的并集,批量刪除數(shù)據(jù)   *    * @param list   */  public abstract void deleteBatch(List<DBObject> list);  /**   * 得到Collection()總的記錄數(shù)   *    * @return   */  public abstract long getCollectionCount();  public abstract long getCount(DBObject query);  public abstract List<DBObject> find(DBObject query);  public abstract List<DBObject> find(DBObject query,DBObject sort);  public abstract List<DBObject> find(DBObject query,DBObject sort,int start,int limit);  /**   * 根據(jù)whereFields參數(shù),更新setFields值   *    * @param setFields   * @param whereFields   */  public abstract void update(DBObject setFields,      DBObject whereFields);  public abstract List<DBObject> findAll();  /**   * 根據(jù)ID找到唯一數(shù)據(jù) 有1個id字段標記   *    * @param id   * @return   */  public abstract DBObject getById(String id);  /**   * 獲取所有數(shù)據(jù)庫名稱   *    * @return   */  public List<String> 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

/************************* 版權(quán)聲明 ********************************* *                                                               * *           版權(quán)所有:百洋軟件                                                    * *     Copyright (c) 2010 by www.po-soft.com                        * *                                                               * ************************* 變更記錄 ********************************* * * 創(chuàng)建者:yongtree  創(chuàng)建日期: 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(Map<String, 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(List<DBObject> list) {    if (list == null || list.isEmpty()) {      return;    }    List<DBObject> listDB = new ArrayList<DBObject>();    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(List<DBObject> 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 List<DBObject> find(DBObject obj) {    DBCursor cur = getCollection().find(obj);    return DBCursor2list(cur);  }  @Override  public List<DBObject> 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 List<DBObject> 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 List<DBObject> DBCursor2list(DBCursor cur) {    List<DBObject> list = new ArrayList<DBObject>();    if (cur != null) {      list = cur.toArray();    }    return list;  }  public void update(DBObject setFields, DBObject whereFields) {    getCollection().updateMulti(setFields, whereFields);  }  public List<DBObject> findAll() {    DBCursor cur = getCollection().find();    List<DBObject> list = new ArrayList<DBObject>();    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 List<String> getAllDBNames() {    return MongoDBConfig.getDBNames();  }}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产在线高清精品| 午夜国产福利一区二区| 精品国产免费视频| 国产一区在线精品| 欧美国产三级| 亚洲欧美中文在线视频| 日韩av一区二区在线观看| 精品久久九九| 亚洲综合在线视频| 欧美.日韩.国产.一区.二区| 日韩欧美色综合| 最近中文字幕在线中文高清版| 五月天久久比比资源色| 欧美日韩综合高清一区二区| 成人精品国产福利| 免费看日韩精品| 在线资源av| 国产亚洲视频中文字幕视频| 免费精品国产自产拍在| 中文字幕在线观看精品| 国内精品露脸在线视频播放| 亚洲乱码中文字幕| 欧美成人一区二区| 日韩中文字幕在线视频观看| 亚洲午夜av| 日本精品福利视频| 在线日韩中文| 在线不卡一区二区| 久久99精品久久久久子伦| 亚洲黄在线观看| 久久久精品国产99久久精品芒果| 热久久精品国产| 91精品观看| 精品福利在线观看| 中文av字幕一区| 一区视频在线播放| 欧美 日韩 中文字幕| 日韩欧美一级在线| 九七久久人人| 欧美日韩国产亚洲一区| 日本熟女一区二区| 欧美亚洲综合视频| 顶级网黄在线播放| 欧美久久久网站| a天堂中文在线官网在线| 久久精品视频免费看| 久久电影国产免费久久电影| 国产在线黄色片| 日韩在线视频二区| 91精品国产99| 欧美日韩国产首页| 欧美日韩在线第一页| 欧美国产小视频| 中文在线第一页| 国产视频1区2区| 亚洲免费中文字幕| 国产三级精品网站| 91精品国产91综合久久蜜臀 | 国产 欧美 在线| 高清中文字幕在线| 亚洲精品欧美二区三区中文字幕 | 国产欧美 在线欧美| 欧美日韩在线国产| 国产亚洲人成a一在线v站| 日本亚洲欧美| 久久人人精品| 日韩在线视频免费观看| 日韩欧美综合视频| 天堂在线中文| 欧美日韩国产综合视频在线观看| 日本xxxwww免费视频| 日韩.欧美.亚洲| 国产综合精品在线| 91精品国产91久久久久久不卡| 日韩国产在线观看一区| 中文字幕日韩在线观看| av中文资源在线| 欧美专区中文字幕| 日韩欧美在线不卡| 国产999在线观看| 中文字幕综合在线| 91精品国产色综合久久不卡蜜臀 | 中文字幕 日韩 欧美| 日韩免费视频一区二区| 国产婷婷在线观看| 亚洲一区在线观看视频| 精品视频123区在线观看| 国产欧美日韩中文久久| 欧美日本精品| 国产 欧美 在线| 欧美日本精品| 国产欧美日韩视频在线| 亚洲久草视频| 日韩欧美在线看| 一区二区精品区| 欧美日韩国产区| 在线一区二区不卡| 99国产一区| 欧美日韩在线视频一区| 国产成人综合av| 精品久久久三级| 欧美日韩在线播放一区| 伊人网站在线| 最近中文av字幕在线中文| 久久夜色精品国产欧美乱极品 | 麻豆一区二区99久久久久| 欧美日韩一区二区在线视频| √新版天堂资源在线资源| 久久久精品国产99久久精品芒果| 免费高清视频日韩| 999视频精品| 91精品国产高清久久久久久| 综合激情国产一区| 日韩在线视频二区| 久久久精品午夜少妇| 国产调教精品| 亚洲社区在线| 精品亚洲成a人片在线观看| 欧美日韩亚州综合| 欧美不卡一二三| 久久久精品日韩| 亚洲黄在线观看| 在线视频一区二区三区在线播放| 亚洲免费在线视频一区 二区| 国产黄在线观看免费观看不卡| 在线视频三区| 日韩精品一页| 91久久中文| www在线视频| 欧美三级三级三级爽爽爽| 欧洲精品久久久| 本道综合精品| 日韩欧美999| 午夜私人影院在线观看| 国产一区精品在线| 日韩欧美不卡| 欧美日韩中国免费专区在线看| 精品极品三级久久久久| 欧美日韩国产一级片| xxxxx性| 日韩中文字幕国产| 亚洲免费观看视频| 国产劲爆久久| 欧美日韩在线三级| 亚洲成在线观看| 久久精品一级爱片| 精品视频www| 国产中文伊人| 久久精品日韩无码| a在线观看免费视频| 日韩视频一区| 日韩欧美高清在线视频| 国产偷国产偷亚洲清高网站 | 一级网站免费观看| 午夜伦欧美伦电影理论片| 午夜国产在线视频| 日韩欧美国产午夜精品| 国产日韩av一区| 91精品国产综合久久香蕉最新版| www.eeuss影院| 91精品在线观| 欧美日韩一二三| 日韩欧美一级精品久久| 在线欧美日韩国产| av亚洲免费| 在线一区av| 亚洲一区精品在线| 91精品无人成人www| 久久久99免费| 91精品在线国产| 中文字幕在线视频精品| 日韩美女中文字幕| 亚洲一区视频在线观看视频| 国产真实乱子伦精品视频| 一级片免费在线| 国产欧美日韩在线看| 欧美色视频一区二区三区在线观看| 欧美日韩中文另类| 午夜av一区| 日韩视频在线免费看| 亚洲 欧美 中文字幕| 国产成人精品综合久久久| 久久精品免费在线观看| 欧美另类久久久品| 在线观看国产一级片| 欧美日韩国产黄色| 欧美 亚洲 精品 三区| 精品极品三级久久久久| 欧美日韩视频不卡| 欧美日韩国产第一页| 日韩不卡一二三区| 在线日韩中文字幕| 日韩欧美在线中字| 日韩中文字幕在线视频观看| 91精品综合久久久久久| 国产一卡2卡3卡4卡网站免费| 亚洲一区二区三区精品中文字幕| 中文字幕在线视频第一页| 精品亚洲永久免费| 91亚洲国产高清| 国产欧美日韩中文| 午夜一区二区视频| 亚洲国产一区自拍| 一区二区三区精品在线观看| 91精品国产高清久久久久久| 欧美三级免费观看| 国产资源在线观看| 一区二区三区在线播放欧美| 色综合天天综合网国产成人综合天| 日韩精品在线播放| 日韩精品综合在线| 视频一区日韩| 日韩中文字幕在线观看视频| 国产欧美日韩最新| 国产亚洲欧美中文| а√天堂中文在线资源8| 日本亚洲视频在线| 香蕉av一区| 日韩精品手机在线| 欧洲精品在线一区| 国产丝袜欧美中文另类| 国产成人精品三级| 中文字幕精品视频| 日韩视频在线观看一区| 亚洲视频在线观看三级| 色综合婷婷久久| 日韩av不卡在线观看| 国产拍揄自揄精品视频麻豆| 国产一卡二卡3卡4卡四卡在线| 国产日韩精品在线看| 国产一卡二卡3卡4卡四卡在线| 精品国产乱码久久久久久牛牛| 国产一级粉嫩xxxx| 中文字幕欧美日韩va免费视频| lutube成人福利在线观看| 日韩欧美在线看| 欧美日韩国产中字| 天堂√8在线中文| 91精品国产全国免费观看| 欧美日韩国产高清视频| 国产欧美日韩久久| 91精品国产入口| 在线一区av| 亚洲福利精品| 亚洲女人天堂a在线播放| 999精品网| 欧美三级日韩在线| 精品国产欧美日韩不卡在线观看| 欧美99久久| 欧美一级免费观看| 首页国产欧美久久| 日韩亚洲欧美中文高清在线| 久久中文免费视频| 亚洲高清在线免费| 久久综合久久综合九色| 国产成人一区二区精品非洲| 极品久久久久久| 国产福利久久久| 欧美一级免费看| xxxcom在线观看| www在线视频| 日韩精品免费视频一区二区三区| 国产黄色片中文字幕| 婷婷久久综合九色国产成人| 久久综合九色欧美综合狠狠| 91精品国产经典在线观看| 亚洲福利在线视频| 精品久久久三级| 国产日韩综合| 日韩三级一区二区| 日本亚洲欧美三级| 欧美日韩亚洲综合| 国产视频一二区| 黄色一区二区在线观看| 一区二区不卡视频在线观看| 二区三区不卡不卡视频| 欧美日韩精品三区| a天堂中文在线官网在线| a视频免费在线观看| 中文字幕第一页在线播放| 亚洲综合欧美在线| 欧美熟妇乱码在线一区| 日韩三区免费| 国产午夜精品久久| 韩国v欧美v日本v亚洲| 日韩三级一区二区| 日本啊v在线| 国产一区深夜福利| 日韩欧美综合在线| 激情婷婷亚洲| 精品久久久久久综合日本欧美| 中文字幕伊人| 国产一区高清视频| 久久99久久99精品中文字幕| 欧美日韩在线播放三区四区| 亚洲欧美视频一区二区三区| 91精品高清| 久久久综合精品| 91欧美日韩| 久久精品蜜桃| 精品对白一区国产伦| 一级片免费网站| av中文资源在线| 亚洲精品欧美二区三区中文字幕| 欧美三级在线看| 亚洲福利在线看| 亚洲一级特黄| 91精品国产丝袜白色高跟鞋| 欧美区高清在线| 国产欧美高清在线| 亚洲电影中文字幕在线观看| 欧美 日韩 国产在线观看| 在线观看国产福利视频| 精品国产1区2区3区| 一区二区视频免费看| 亚洲狠狠婷婷综合久久久久图片| 色国产在线视频| 日韩欧美99| 欧美日韩精品在线观看| 欧美日韩在线精品成人综合网| 日韩欧美在线1卡| 日韩不卡中文字幕| 91精品视频播放| 精品人妻二区中文字幕| 人成免费在线视频| 日韩国产一区久久| 日韩综合精品| 一区二区日韩av| 日韩福利视频导航| 久久婷婷国产| 日韩精品在线网站| 深夜日韩欧美| 欧美亚洲天堂网| 欧美日韩中文字幕在线视频| 国产高清在线视频| 久久网站免费观看| 91av久久久| 国产欧美日韩在线观看| 一区二区三区精品99久久| 日韩欧美在线综合| 国产一区激情在线| 国产精久久久久| www日韩在线观看| 精品在线99| 你懂的亚洲视频| 国产在线高清精品| 精品国内自产拍在线视频| 欧美 日韩 中文字幕| 国产网站欧美日韩免费精品在线观看 | 自拍日韩亚洲一区在线| 亚洲.国产.中文慕字在线| 久久韩国免费视频| 日韩色在线观看| 亚洲一区中文字幕在线| 韩国v欧美v日本v亚洲| 国产在线观看黄色| 免费中文字幕日韩欧美| 91午夜在线| 一区视频在线播放| www中文字幕| 国产在线精品国自产拍免费| 免费在线观看国产黄| 交视频在线观看国产| 一级免费a一片| 国产午夜精品久久| 中文字幕久精品免费视频| av一级在线| 黄色国产网站在线观看| 亚洲 欧美 日韩系列| 欧美日韩三级视频| 日韩不卡在线播放| 日韩中文字幕综合| 最近中文av字幕在线中文| 中文精品电影| 国产婷婷精品| 亚洲制服丝袜一区| 日韩午夜一区| 国产高潮久久久| 日韩国产欧美在线视频| 欧美日韩国产中文| 国产黄在线播放| 欧美日韩激情一区二区三区| 日韩欧美国产成人精品免费| 日韩精品在线看| 91精品综合久久久久久| 欧美日韩精品久久久| 欧美日韩视频不卡| 亚亚洲欧洲精品| 中文字幕亚洲一区在线观看| 日韩欧美国产网站| 中文字幕欧美人妻精品一区蜜臀| 久久精品99国产国产精| 在线日韩中文字幕| 欧美久久久久久蜜桃| 亚洲图片小说综合| 日韩视频国产视频| 99综合视频| 欧美一级免费看| 中文字幕2020第一页| 国产偷久久久精品专区|