麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

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

2020-03-14 13:25:02
字體:
供稿:網(wǎng)友

MongoDB是一個文檔型數(shù)據(jù)庫,是NOSQL家族中最重要的成員之一,以下代碼封裝了MongoDB的基本操作。具體都在備注當中,要仔細看哦

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

MongoDBConfig.java

 

 
  1. package com.posoftframework.mongodb; 
  2. import java.io.File; 
  3. import java.io.FileInputStream; 
  4. import java.io.IOException; 
  5. import java.util.Enumeration; 
  6. import java.util.HashMap; 
  7. import java.util.Hashtable; 
  8. import java.util.List; 
  9. import java.util.Map; 
  10. import java.util.Properties; 
  11. import com.mongodb.DB; 
  12. import com.mongodb.Mongo; 
  13. /** 
  14. * MongoDB配置類 
  15.  
  16. * @author yongtree 
  17. * @date 2010-7-7 下午07:45:08 
  18. * @version 1.0 
  19. */ 
  20. public class MongoDBConfig { 
  21. private static Mongo mongo; 
  22. private static DB db; 
  23. private static final String MONGO_DB_ADDRESS = "localhost"
  24. private static final int MONGO_DB_PORT = 27017; 
  25. private static final String MONGO_DB_USERNAME = "root"
  26. private static final String MONGO_DB_PASSWORD = "root"
  27. private static final String MONGO_DB_DBNAME = "mongodb"
  28. private static final String MONGO_DB_RESOURCE_FILE = "mongodb.cfg.properties"
  29. /** 
  30. * Mongo數(shù)據(jù)庫參數(shù) 
  31. */ 
  32. private static Map<String, String> cfgMap = new HashMap<String, String>(); 
  33. private static Hashtable<String, DB> mongoDBs = new Hashtable<String, DB>(); 
  34. /** 
  35. * 初始化Mongo的數(shù)據(jù)庫 
  36. */ 
  37. static { 
  38. init(); 
  39. public static File getConfigFile() { 
  40. String path = MongoDBConfig.class.getResource("/").getPath(); 
  41. String fileName = path + MONGO_DB_RESOURCE_FILE; 
  42. File file = new File(fileName); 
  43. if (file.exists()) { 
  44. return file; 
  45. return null
  46. @SuppressWarnings("unchecked"
  47. private static void initCfgMap() { 
  48. File file = getConfigFile(); 
  49. if (file != null) { 
  50. Properties p = new Properties(); 
  51. try { 
  52. p.load(new FileInputStream(file)); 
  53. for (Enumeration enu = p.propertyNames(); enu.hasMoreElements();) { 
  54. String key = (String) enu.nextElement(); 
  55. String value = (String) p.getProperty(key); 
  56. cfgMap.put(key, value); 
  57. catch (IOException e) { 
  58. System.out.println("記載Mongo配置文件失敗!"); 
  59. e.printStackTrace(); 
  60. else { 
  61. cfgMap.put("mongo.db.address", MONGO_DB_ADDRESS); 
  62. cfgMap.put("mongo.db.port", String.valueOf(MONGO_DB_PORT)); 
  63. cfgMap.put("mongo.db.username", MONGO_DB_USERNAME); 
  64. cfgMap.put("mongo.db.password", MONGO_DB_PASSWORD); 
  65. cfgMap.put("mongo.db.dbname", MONGO_DB_DBNAME); 
  66. /** 
  67. * 初始化Mongo數(shù)據(jù)庫 
  68. */ 
  69. private static void init() { 
  70. initCfgMap(); 
  71. try { 
  72. String address = cfgMap.get("mongo.db.address"); 
  73. int port = Integer.parseInt(cfgMap.get("mongo.db.port").toString()); 
  74. String dbName = cfgMap.get("mongo.db.dbname"); 
  75. String username = cfgMap.get("mongo.db.username"); 
  76. String password = cfgMap.get("mongo.db.password"); 
  77. mongo = new Mongo(address, port); 
  78. if (dbName != null && !"".equals(dbName)) { 
  79. db = mongo.getDB(dbName); 
  80. if (username != null && !"".equals(username)) { 
  81. db.addUser(username, password.toCharArray()); 
  82. mongoDBs.put(dbName, db); 
  83. catch (IOException e) { 
  84. e.printStackTrace(); 
  85. /** 
  86. * 得到Mongo的實例 
  87.  
  88. * @return 
  89. */ 
  90. public static Mongo getMongo() { 
  91. return mongo; 
  92. /** 
  93. * 得到Mongo的圖片數(shù)據(jù)庫 
  94.  
  95. * @return 
  96. */ 
  97. public static DB getDB() { 
  98. return db; 
  99. public static List<String> getDBNames() { 
  100. return mongo.getDatabaseNames(); 
  101. /** 
  102. * 根據(jù)數(shù)據(jù)庫名稱,得到數(shù)據(jù)庫<br/> 
  103. * 如果不存在,則創(chuàng)建一個該名稱的數(shù)據(jù)庫,并設(shè)置用戶名和密碼為配置文件中的參數(shù)值</br> 
  104.  
  105. * @param dbName 
  106. * @return 
  107. */ 
  108. public static DB getDBByName(String dbName) { 
  109. DB db = mongo.getDB(dbName); 
  110. if (!mongoDBs.contains(db)) { 
  111. db.addUser(cfgMap.get("mongo.db.username"), cfgMap.get( 
  112. "mongo.db.password").toCharArray()); 
  113. mongoDBs.put(dbName, db); 
  114. return db; 

MongoService.java

 

 
  1. /************************* 版權(quán)聲明 ********************************* 
  2. * * 
  3. * 版權(quán)所有:百洋軟件 * 
  4. * Copyright (c) 2010 by www.po-soft.com * 
  5. * * 
  6. ************************* 變更記錄 ********************************* 
  7. * 
  8. * 創(chuàng)建者:yongtree 創(chuàng)建日期: 2010-7-7 
  9. * 備注: 
  10.  
  11. * 修改者: 修改日期: 
  12. * 備注: 
  13.  
  14. */ 
  15. package com.posoftframework.mongodb; 
  16. import java.util.List; 
  17. import java.util.Map; 
  18. import com.mongodb.DB; 
  19. import com.mongodb.DBCollection; 
  20. import com.mongodb.DBObject; 
  21. /** 
  22. * 操作MongoDB的DAO接口 
  23.  
  24. * @author yongtree 
  25. * @date 2010-7-7 下午04:44:43 
  26. * @version 1.0 
  27. */ 
  28. public interface MongoService { 
  29. public abstract DBCollection getCollection(); 
  30. /** 
  31. * 根據(jù)數(shù)據(jù)集合的Map,插入數(shù)據(jù) map的key對應(yīng)數(shù)據(jù)庫中的DBCollection的key值 
  32.  
  33. * @param obj 
  34. */ 
  35. public abstract DBObject insert(DBObject obj); 
  36. /** 
  37. * 根據(jù)List<Map<String,Object>>結(jié)構(gòu)的數(shù)據(jù)集合,插入數(shù)據(jù) 
  38.  
  39. * @param list 
  40. */ 
  41. public abstract void insertBatch(List<DBObject> list); 
  42. /** 
  43. * 按照條件參數(shù)集合map,刪除數(shù)據(jù) 
  44.  
  45. * @param map 
  46. */ 
  47. public abstract void delete(DBObject obj); 
  48. /** 
  49. * 按照多種條件的并集,批量刪除數(shù)據(jù) 
  50.  
  51. * @param list 
  52. */ 
  53. public abstract void deleteBatch(List<DBObject> list); 
  54. /** 
  55. * 得到Collection()總的記錄數(shù) 
  56.  
  57. * @return 
  58. */ 
  59. public abstract long getCollectionCount(); 
  60. public abstract long getCount(DBObject query); 
  61. public abstract List<DBObject> find(DBObject query); 
  62. public abstract List<DBObject> find(DBObject query,DBObject sort); 
  63. public abstract List<DBObject> find(DBObject query,DBObject sort,int start,int limit); 
  64. /** 
  65. * 根據(jù)whereFields參數(shù),更新setFields值 
  66.  
  67. * @param setFields 
  68. * @param whereFields 
  69. */ 
  70. public abstract void update(DBObject setFields, 
  71. DBObject whereFields); 
  72. public abstract List<DBObject> findAll(); 
  73. /** 
  74. * 根據(jù)ID找到唯一數(shù)據(jù) 有1個id字段標記 
  75.  
  76. * @param id 
  77. * @return 
  78. */ 
  79. public abstract DBObject getById(String id); 
  80. /** 
  81. * 獲取所有數(shù)據(jù)庫名稱 
  82.  
  83. * @return 
  84. */ 
  85. public List<String> getAllDBNames(); 
  86. public abstract String getDbName(); 
  87. public abstract void setDbName(String dbName); 
  88. public abstract DB getDb(); 
  89. public abstract String getCollName(); 
  90. public abstract void setCollName(String collName); 

MongoServiceImpl.java

 

  1. /************************* 版權(quán)聲明 ********************************* 
  2. * * 
  3. * 版權(quán)所有:百洋軟件 * 
  4. * Copyright (c) 2010 by www.po-soft.com * 
  5. * * 
  6. ************************* 變更記錄 ********************************* 
  7. * 
  8. * 創(chuàng)建者:yongtree 創(chuàng)建日期: 2010-7-7 
  9. * 備注: 
  10.  
  11. * 修改者: 修改日期: 
  12. * 備注: 
  13.  
  14. */ 
  15. package com.posoftframework.mongodb; 
  16. import java.util.ArrayList; 
  17. import java.util.List; 
  18. import java.util.Map; 
  19. import org.bson.types.ObjectId; 
  20. import com.mongodb.BasicDBObject; 
  21. import com.mongodb.DB; 
  22. import com.mongodb.DBCollection; 
  23. import com.mongodb.DBCursor; 
  24. import com.mongodb.DBObject; 
  25. /** 
  26.  
  27. * @author yongtree 
  28. * @date 2010-7-7 下午07:22:15 
  29. * @version 1.0 
  30. */ 
  31. public class MongoServiceImpl implements MongoService { 
  32. private String dbName; 
  33. private String collName; 
  34. private DB db; 
  35. public MongoServiceImpl(String dbName, String collName) { 
  36. this.dbName = dbName; 
  37. this.collName = collName; 
  38. try { 
  39. db = MongoDBConfig.getDBByName(this.dbName); 
  40. catch (Throwable e) { 
  41. e.printStackTrace(); 
  42. public MongoServiceImpl() { 
  43. getDb(); 
  44. public DBCollection getCollection() { 
  45. return db.getCollection(this.collName); 
  46. public DBObject map2Obj(Map<String, Object> map) { 
  47. DBObject obj = new BasicDBObject(); 
  48. if (map.containsKey("class") && map.get("class"instanceof Class) 
  49. map.remove("class"); 
  50. obj.putAll(map); 
  51. return obj; 
  52. public DBObject insert(DBObject obj) { 
  53. getCollection().insert(obj); 
  54. return obj; 
  55. public void insertBatch(List<DBObject> list) { 
  56. if (list == null || list.isEmpty()) { 
  57. return
  58. List<DBObject> listDB = new ArrayList<DBObject>(); 
  59. for (int i = 0; i < list.size(); i++) { 
  60. listDB.add(list.get(i)); 
  61. getCollection().insert(listDB); 
  62. public void delete(DBObject obj) { 
  63. getCollection().remove(obj); 
  64. public void deleteBatch(List<DBObject> list) { 
  65. if (list == null || list.isEmpty()) { 
  66. return
  67. for (int i = 0; i < list.size(); i++) { 
  68. getCollection().remove(list.get(i)); 
  69. public long getCollectionCount() { 
  70. return getCollection().getCount(); 
  71. public long getCount(DBObject obj) { 
  72. if (obj != null
  73. return getCollection().getCount(obj); 
  74. return getCollectionCount(); 
  75. public List<DBObject> find(DBObject obj) { 
  76. DBCursor cur = getCollection().find(obj); 
  77. return DBCursor2list(cur); 
  78. @Override 
  79. public List<DBObject> find(DBObject query, DBObject sort) { 
  80. DBCursor cur; 
  81. if (query != null) { 
  82. cur = getCollection().find(query); 
  83. else { 
  84. cur = getCollection().find(); 
  85. if (sort != null) { 
  86. cur.sort(sort); 
  87. return DBCursor2list(cur); 
  88. @Override 
  89. public List<DBObject> find(DBObject query, DBObject sort, int start, 
  90. int limit) { 
  91. DBCursor cur; 
  92. if (query != null) { 
  93. cur = getCollection().find(query); 
  94. else { 
  95. cur = getCollection().find(); 
  96. if (sort != null) { 
  97. cur.sort(sort); 
  98. if (start == 0) { 
  99. cur.batchSize(limit); 
  100. else { 
  101. cur.skip(start).limit(limit); 
  102. return DBCursor2list(cur); 
  103. private List<DBObject> DBCursor2list(DBCursor cur) { 
  104. List<DBObject> list = new ArrayList<DBObject>(); 
  105. if (cur != null) { 
  106. list = cur.toArray(); 
  107. return list; 
  108. public void update(DBObject setFields, DBObject whereFields) { 
  109. getCollection().updateMulti(setFields, whereFields); 
  110. public List<DBObject> findAll() { 
  111. DBCursor cur = getCollection().find(); 
  112. List<DBObject> list = new ArrayList<DBObject>(); 
  113. if (cur != null) { 
  114. list = cur.toArray(); 
  115. return list; 
  116. public DBObject getById(String id) { 
  117. DBObject obj = new BasicDBObject(); 
  118. obj.put("_id"new ObjectId(id)); 
  119. DBObject result = getCollection().findOne(obj); 
  120. return result; 
  121. public String getDbName() { 
  122. return dbName; 
  123. public void setDbName(String dbName) { 
  124. this.dbName = dbName; 
  125. this.db = MongoDBConfig.getDBByName(this.dbName); 
  126. public String getCollName() { 
  127. return collName; 
  128. public void setCollName(String collName) { 
  129. this.collName = collName; 
  130. public DB getDb() { 
  131. if (this.db == null) { 
  132. if (this.dbName == null) { 
  133. this.db = MongoDBConfig.getDB(); 
  134. else { 
  135. this.db = MongoDBConfig.getDBByName(this.dbName); 
  136. return this.db; 
  137. public List<String> getAllDBNames() { 
  138. return MongoDBConfig.getDBNames(); 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美激情第一区 | 色综合视频 | 久草久视频 | 99视频网址 | 免费观看一级黄色片 | 国产99视频精品免视看9 | 91av国产在线| 在线播放视频一区二区 | 国产精品久久久麻豆 | 日本精品视频一区二区三区四区 | 午夜视频在线免费播放 | 成年人免费视频播放 | julieann艳星激情办公室 | 国产在线色 | 大学生一级毛片在线视频 | 一级电影在线观看 | 精品在线观看一区二区三区 | 欧美视频黄色 | 色婷婷a v | 久久精品视频日本 | 精品人成 | 成人免费观看49www在线观看 | 国产青草网 | 亚洲视频高清 | 日韩精品久久久 | 在线观看免费毛片视频 | 久久在线 | 在线无码 | 九九热在线视频免费观看 | 午夜视频观看 | 黄色美女免费 | 欧美一级视频免费看 | 欧美黄成人免费网站大全 | 成人mm视频在线观看 | 91成人在线免费视频 | 亚洲va久久久噜噜噜久久男同 | 黄a大片| 一区二区三区视频在线观看 | 久久精品日产高清版的功能介绍 | 九九热九九 | 黄色网址免费在线播放 |