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

主頁 > 知識庫 > MongoDB操作類封裝實例代碼

MongoDB操作類封裝實例代碼

熱門標簽:crm外呼系統聯系方式 長沙電銷外呼防封卡是什么 內蒙古營銷智能外呼系統哪個好 呼和浩特外呼系統原理是什么 河南電話外呼系統招商 小裙科技電銷機器人怎樣 智能外呼系統官網 外呼線路資源屬于電信業務嗎 青白江400企業電話申請

前言

最近接到一個需求,要做MongoDB打點數據的統計,在學習過MongoDB的操作之后,封裝了一個MongoDB的操作類,分為兩部分,基本思想是參照了自己寫過的mysql的操作類。一個是基本的操作類,包括所有基本操作的靜態方法,還有一個是mongoobject,就是具體操作的實現類。

以后再寫如何用spring boot寫一個簡單的統計服務。

MongoDB操作類封裝

mongobase代碼如下:

package com.fun.mongodb;
 
import com.fun.frame.SourceCode;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
 
import java.util.Arrays;
import java.util.List;
 
/**
 * mongo操作類的基礎類
 */
public class MongoBase extends SourceCode {
 
 /**
  * 獲取服務地址list
  *
  * @param addresses
  * @return
  */
 public static ListServerAddress> getServers(ServerAddress... addresses) {
  return Arrays.asList(addresses);
 }
 
 /**
  * 獲取服務地址
  *
  * @param host
  * @param port
  * @return
  */
 public static ServerAddress getServerAdress(String host, int port) {
  return new ServerAddress(host, port);
 }
 
 /**
  * 獲取認證list
  *
  * @param credentials
  * @return
  */
 public static ListMongoCredential> getCredentials(MongoCredential... credentials) {
  return Arrays.asList(credentials);
 }
 
 /**
  * 獲取驗證
  *
  * @param userName
  * @param database
  * @param password
  * @return
  */
 public static MongoCredential getMongoCredential(String userName, String database, String password) {
  return MongoCredential.createCredential(userName, database, password.toCharArray());
 }
 
 /**
  * 獲取mongo客戶端
  *
  * @param addresses
  * @param credentials
  * @return
  */
 public static MongoClient getMongoClient(ListServerAddress> addresses, ListMongoCredential> credentials) {
  return new MongoClient(addresses, credentials);
 }
 
 /**
  * 連接mongo數據庫
  *
  * @param mongoClient
  * @param databaseName
  * @return
  */
 public static MongoDatabase getMongoDatabase(MongoClient mongoClient, String databaseName) {
  return mongoClient.getDatabase(databaseName);
 }
 
 /**
  * 連接mongo集
  *
  * @param mongoDatabase
  * @param collectionName
  * @return
  */
 public static MongoCollectionDocument> getMongoCollection(MongoDatabase mongoDatabase, String collectionName) {
  return mongoDatabase.getCollection(collectionName);
 }
 
 /**
  * 關閉數據庫連接
  *
  * @param mongoClient
  */
 public static void MongoOver(MongoClient mongoClient) {
  mongoClient.close();
 }
 
 /**
  * 獲取mongo客戶端對象,通過servers和credentials對象創建
  *
  * @param mongoObject
  * @return
  */
 public static MongoClient getMongoClient(MongoObject mongoObject) {
  MongoClient mongoClient = new MongoClient(getServers(getServerAdress(mongoObject.host, mongoObject.port)), getCredentials(getMongoCredential(mongoObject.user, mongoObject.database, mongoObject.password)));
  return mongoClient;
 }
 
 /**
  * 獲取mongo客戶端對象,通過uri方式連接
  *
  * @param mongoObject
  * @return
  */
 public static MongoClient getMongoClientOnline(MongoObject mongoObject) {
  String format = String.format("mongodb://%s:%s@%s:%d/%s", mongoObject.user, mongoObject.password, mongoObject.host, mongoObject.port, mongoObject.database);
  return new MongoClient(new MongoClientURI(format));
 }
 
 /**
  * 獲取collection對象
  *
  * @param mongoObject
  * @return
  */
 public static MongoCollectionDocument> getCollection(MongoObject mongoObject, String collectionName) {
  return getMongoClient(mongoObject).getDatabase(mongoObject.database).getCollection(collectionName);
 }
 
 /**
  * 獲取collection對象
  *
  * @param mongoObject
  * @return
  */
 public static MongoCollectionDocument> getCollectionOnline(MongoObject mongoObject, String collectionName) {
  return getMongoClientOnline(mongoObject).getDatabase(mongoObject.database).getCollection(collectionName);
 }
 
}

mongoobject的代碼如下:

package com.fun.mongodb;
 
 
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
 
/**
 * mongo數據庫配置對象,針對單個數據服務,單個身份驗證
 */
public class MongoObject extends MongoBase {
 
  String host;
 
  int port;
 
  String user;
 
  String password;
 
  String database;
 
  MongoClient mongoClient;
 
  /**
   * 創建數據連接
   *
   * @param host
   * @param port
   * @param user
   * @param password
   * @param database
   */
  public MongoObject(String host, int port, String user, String password, String database) {
    this.host = host;
    this.port = port;
    this.user = user;
    this.password = password;
    this.database = database;
    this.mongoClient = getMongoClient(this);
  }
 
  /**
   * 創建數據庫連接
   *
   * @param port
   * @param host
   * @param user
   * @param password
   * @param database
   */
  public MongoObject(int port, String host, String user, String password, String database) {
    this.host = host;
    this.port = port;
    this.user = user;
    this.password = password;
    this.database = database;
    this.mongoClient = getMongoClientOnline(this);
  }
 
  /**
   * 獲取colletion對象
   *
   * @param collectionName
   * @return
   */
  public MongoCollectionDocument> getMongoCollection(String collectionName) {
    MongoClient mongoClientOnline = getMongoClientOnline(this);
    return mongoClientOnline.getDatabase(database).getCollection(collectionName);
  }
 
 
  /**
   * 關閉連接
   */
  public void over() {
    MongoOver(this.mongoClient);
  }
}
 @Override
  public MongoObject clone() {
    return new MongoObject(this.host, this.port, this.user, this.password, this.database);
  }

  public MongoObject clone2() {
    return new MongoObject(this.port, this.host, this.user, this.password, this.database);
  }

具體效果非常不錯,測試代碼如下:

 public static void main(String[] args) {
    MongoObject ready = new MongoObject("*****", 5117, "fission_record", "fission_record", "fission_record");
    MongoCollectionDocument> app = ready.getMongoCollection("app_logs_20181109");
    Document first = app.find().first();
    output(first);
    ready.over();
  }

打印內容如下:

Document{{_id=5be4ce052ce01b21b6c26a64, _class=com.fission.next.record.bean.AppRecordBean, user_id=5482, action_type={"gameId":2,"userId":"5482"}, action_extern=DataSta_Game_Starts, client_version=15, client_ip=114.5.146.239, client_imei=UNKNOWN, client_dev=xiaomi-Redmi 5 Plus, client_type=200, server_time=1541721601655, os_name=200, os_version=15, client_time=1541721577025}}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • php封裝的mongodb操作類代碼
  • PHP實現的MongoDB數據庫操作類分享
  • php實現的mongodb操作類
  • PHP實現的mongoDB數據庫操作類完整實例
  • php實現的mongodb操作類實例
  • php實現的mongoDB單例模式操作類
  • php mongodb操作類 帶幾個簡單的例子
  • PHP mongodb操作類定義與用法示例【適合mongodb2.x和mongodb3.x】

標簽:菏澤 安順 楚雄 池州 呼倫貝爾 白山 黃石 舟山

巨人網絡通訊聲明:本文標題《MongoDB操作類封裝實例代碼》,本文關鍵詞  MongoDB,操作,類,封裝,實例,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB操作類封裝實例代碼》相關的同類信息!
  • 本頁收集關于MongoDB操作類封裝實例代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    www.日韩在线| 亚洲一区中文在线| 国产一区二区久久| 欧美精品一区二区久久久| 国模少妇一区二区三区| 久久中文字幕电影| www.亚洲国产| 亚洲第一主播视频| 欧美一区二区网站| 国产一区二区福利视频| 国产精品三级视频| 欧美四级电影网| 免费高清不卡av| 欧美国产丝袜视频| 欧美综合亚洲图片综合区| 午夜精品福利久久久| 精品日韩欧美在线| 不卡视频在线观看| 亚洲成年人网站在线观看| 欧美成人激情免费网| 高清beeg欧美| 亚洲亚洲人成综合网络| 欧美一区二区三区不卡| 国产精品一区二区男女羞羞无遮挡 | 精品福利av导航| 北条麻妃一区二区三区| 亚洲chinese男男1069| 精品久久人人做人人爱| 91免费观看视频在线| 另类小说综合欧美亚洲| 国产精品黄色在线观看| 4438x亚洲最大成人网| 国v精品久久久网| 亚洲国产另类av| 欧美激情一区二区在线| 欧美老年两性高潮| va亚洲va日韩不卡在线观看| 丝袜美腿亚洲一区| 18成人在线观看| 欧美一级一级性生活免费录像| 成人免费视频视频| 日本少妇一区二区| 一区二区三区中文字幕在线观看| 久久综合色8888| 欧美日韩夫妻久久| 99精品国产视频| 久久99国产精品尤物| 亚洲精品免费电影| 欧美国产日产图区| 精品国产91乱码一区二区三区| 日本高清不卡在线观看| 国产91精品一区二区| 男人的天堂亚洲一区| 一区二区高清免费观看影视大全 | 国产精品美女久久久久aⅴ国产馆| 欧美精品乱码久久久久久| 91免费小视频| 成人精品鲁一区一区二区| 蜜桃av一区二区三区电影| 亚洲福利国产精品| 亚洲丝袜制服诱惑| 国产精品久久久久久久裸模| 久久综合久久综合亚洲| 日韩欧美一级精品久久| 欧美美女网站色| 欧美色国产精品| 99国产精品99久久久久久| 成人中文字幕合集| 国产精选一区二区三区| 国产在线一区二区综合免费视频| 蜜臀精品一区二区三区在线观看| 一区二区免费在线播放| 自拍偷拍亚洲欧美日韩| 成人欧美一区二区三区| 国产精品国产馆在线真实露脸| 国产欧美一区二区三区在线看蜜臀| 欧美一级日韩免费不卡| 日韩三级精品电影久久久| 欧美日韩免费一区二区三区视频| 在线观看日韩高清av| 欧美色偷偷大香| 欧美喷水一区二区| 91精品国产综合久久香蕉的特点 | 午夜视频在线观看一区二区| 亚洲午夜电影网| 亚洲国产精品综合小说图片区| 午夜视频一区在线观看| 蜜桃视频在线观看一区二区| 美国毛片一区二区| 国产成人综合自拍| 91年精品国产| 欧美日韩国产另类一区| 欧美精品v国产精品v日韩精品| 欧美一级高清片| 欧美精品一区二区三区高清aⅴ | 日韩无一区二区| 精品美女被调教视频大全网站| 久久久久97国产精华液好用吗| 欧美激情在线免费观看| 亚洲另类中文字| 日精品一区二区三区| 久久国产精品第一页| 国产精品系列在线播放| av网站免费线看精品| 欧美片在线播放| 久久综合九色综合久久久精品综合| 国产欧美精品区一区二区三区| 亚洲激情欧美激情| 青青国产91久久久久久| 国产成人免费视频网站| 欧美性生活影院| 久久综合久久99| 亚洲综合色丁香婷婷六月图片| 日本不卡在线视频| 成人av电影免费在线播放| 欧美日韩另类一区| 国产精品网站在线观看| 午夜精品在线视频一区| 国产精品一区二区不卡| 欧美日韩一区成人| 亚洲国产精品成人综合 | 国产一区999| 91福利视频久久久久| xnxx国产精品| 亚洲国产成人tv| 国产不卡视频在线播放| 制服丝袜av成人在线看| 亚洲少妇30p| 寂寞少妇一区二区三区| 欧美视频在线播放| 中文字幕不卡在线| 久久综合综合久久综合| 欧洲在线/亚洲| 国产日产欧美精品一区二区三区| 五月婷婷久久丁香| 91丨porny丨中文| 欧美va在线播放| 午夜久久久久久久久| 91在线国产福利| 国产亚洲va综合人人澡精品 | jlzzjlzz亚洲女人18| 精品久久一二三区| 五月天亚洲婷婷| 色婷婷激情综合| 国产精品久久久久久久久久久免费看 | 国产成人精品免费视频网站| 91麻豆精品91久久久久久清纯| 国产精品视频一区二区三区不卡| 久久精品噜噜噜成人88aⅴ| 欧美性做爰猛烈叫床潮| 国产精品超碰97尤物18| 国产成人夜色高潮福利影视| 欧美电影免费观看高清完整版 | 久久99精品国产91久久来源| 欧美精品日韩一区| 亚洲一区二区五区| 色综合久久九月婷婷色综合| 中文字幕在线观看一区二区| 国产福利一区二区| 久久久蜜桃精品| 国产一区二区三区蝌蚪| 欧美不卡激情三级在线观看| 蜜桃视频一区二区三区| 日韩免费性生活视频播放| 亚洲愉拍自拍另类高清精品| 色哟哟日韩精品| 亚洲免费在线看| 在线免费亚洲电影| 亚洲电影在线播放| 欧美三级乱人伦电影| 水蜜桃久久夜色精品一区的特点| 欧美喷水一区二区| 免费在线成人网| xfplay精品久久| 成人综合婷婷国产精品久久免费| 国产精品三级视频| 99精品国产视频| 亚洲一线二线三线视频| 欧美一区二区三区色| 日韩激情中文字幕| 精品国产在天天线2019| 国产在线视视频有精品| 国产精品乱码妇女bbbb| voyeur盗摄精品| 亚洲综合色区另类av| 欧美一区二区女人| 狠狠色综合日日| 国产精品免费视频网站| 色综合久久九月婷婷色综合| 午夜成人在线视频| 26uuu久久综合| 波多野结衣一区二区三区| 亚洲午夜在线视频| 精品国产一区二区三区四区四| 国产精一品亚洲二区在线视频| 亚洲欧美中日韩| 日韩亚洲欧美综合| 成人免费视频视频| 天堂va蜜桃一区二区三区 | 国产欧美综合在线|