校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 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操作類封裝實例代碼的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    北条麻妃国产九九精品视频| 视频一区中文字幕| 成人app在线观看| 国产精品无遮挡| 99精品视频中文字幕| 国产精品乱码一区二区三区软件| 成人小视频免费观看| 亚洲欧美日韩成人高清在线一区| 99精品久久免费看蜜臀剧情介绍| 亚洲一本大道在线| 精品国产一二三| eeuss鲁片一区二区三区在线看| 亚洲素人一区二区| 7777女厕盗摄久久久| 国产乱码精品一区二区三区五月婷| 国产日韩高清在线| 欧美三级资源在线| 久久国产精品露脸对白| 中文字幕视频一区| 91精品国产综合久久精品图片| 精品一区二区三区不卡 | 国产剧情av麻豆香蕉精品| 欧美精彩视频一区二区三区| 色哟哟一区二区三区| 男女性色大片免费观看一区二区| 久久久精品日韩欧美| 91免费国产视频网站| 偷拍亚洲欧洲综合| 亚洲国产精品成人综合| 欧美日韩精品一区二区天天拍小说| 久久精品国产亚洲高清剧情介绍 | 成人一区二区三区视频 | 欧美精品欧美精品系列| 国产高清不卡二三区| 香蕉成人啪国产精品视频综合网| 2019国产精品| 欧美日韩亚洲综合| 成人精品视频.| 久久国产乱子精品免费女| 一区二区在线观看免费| 久久亚洲一级片| 在线不卡免费欧美| 色女孩综合影院| 国产麻豆视频一区| 天天色天天操综合| 一区二区三区欧美在线观看| 精品久久免费看| 欧美巨大另类极品videosbest| 成人a免费在线看| 国产一区二区三区免费播放 | 视频一区视频二区在线观看| 国产精品进线69影院| 亚洲精品一区二区三区精华液| 欧美日韩国产三级| 色婷婷激情一区二区三区| 懂色av一区二区三区免费看| 日日噜噜夜夜狠狠视频欧美人 | 亚洲欧美偷拍卡通变态| 国产三级欧美三级| 亚洲精品一区二区三区在线观看| 91麻豆精品国产无毒不卡在线观看| av一本久道久久综合久久鬼色| 国产一区二区精品久久| 理论电影国产精品| 天天综合日日夜夜精品| 亚洲一区二区三区四区的| 亚洲人被黑人高潮完整版| 中文字幕一区二区不卡| 国产精品久久毛片| 国产精品久久久99| 中文字幕免费不卡| 国产精品高清亚洲| 国产精品素人一区二区| 中文字幕欧美区| 国产精品久久久久久久裸模 | 91女人视频在线观看| 99精品国产一区二区三区不卡| 99久久伊人精品| 97se亚洲国产综合在线| 色老头久久综合| 欧美午夜精品久久久| 欧美日韩精品一区二区天天拍小说 | 亚洲大片在线观看| 爽好久久久欧美精品| 日韩制服丝袜先锋影音| 奇米影视7777精品一区二区| 久久不见久久见中文字幕免费| 蜜桃视频一区二区三区| 国内精品伊人久久久久av影院 | 欧美v日韩v国产v| 精品电影一区二区| 国产亚洲成av人在线观看导航 | 欧美成人精品1314www| 日韩欧美国产三级| 中文久久乱码一区二区| 亚洲日本青草视频在线怡红院| 亚洲一二三区视频在线观看| 日本伊人午夜精品| 国产电影一区二区三区| 色诱亚洲精品久久久久久| 6080国产精品一区二区| 2020国产精品| 一区二区三区视频在线看| 三级欧美在线一区| 国产成人精品综合在线观看| av亚洲产国偷v产偷v自拍| 欧美日韩精品免费观看视频| 久久女同互慰一区二区三区| 中文字幕亚洲不卡| 免费久久99精品国产| av一区二区三区在线| 在线成人av网站| 国产精品国产馆在线真实露脸 | 日韩伦理电影网| 日韩av在线发布| av电影在线观看不卡| 欧美高清性hdvideosex| 国产精品视频在线看| 欧美a一区二区| 91丨porny丨最新| 久久综合九色综合久久久精品综合| 亚洲欧美偷拍三级| 国产麻豆精品视频| 欧美精品亚洲二区| 日韩美女久久久| 国产一区二区主播在线| 欧美另类高清zo欧美| 日韩一区中文字幕| 精油按摩中文字幕久久| 欧美亚洲日本国产| 国产精品久久久一区麻豆最新章节| 日本sm残虐另类| 色综合色综合色综合色综合色综合| 欧美电视剧免费全集观看| 一区二区三区免费看视频| 国产91精品欧美| 日韩丝袜情趣美女图片| 一区二区三区不卡在线观看| 国产不卡视频一区| 欧美精品一区二区三区高清aⅴ| 亚洲品质自拍视频网站| 国产精品小仙女| 日韩亚洲欧美中文三级| 亚洲高清免费在线| 在线欧美日韩国产| 中文字幕佐山爱一区二区免费| 国产成人亚洲综合a∨婷婷图片 | 在线观看中文字幕不卡| 国产精品视频在线看| 国产电影精品久久禁18| 久久久久久9999| 九九视频精品免费| 欧美成人艳星乳罩| 美女视频网站久久| 日韩欧美综合在线| 久久激情五月激情| 日韩免费高清电影| 老汉av免费一区二区三区 | 精品国产免费久久| 美女mm1313爽爽久久久蜜臀| 欧美久久一二区| 图片区日韩欧美亚洲| 欧美日韩成人综合天天影院| 亚洲午夜一区二区| 宅男在线国产精品| 日本va欧美va精品发布| 日韩一区二区高清| 蜜臂av日日欢夜夜爽一区| 日韩美女在线视频| 狠狠v欧美v日韩v亚洲ⅴ| 2014亚洲片线观看视频免费| 黑人精品欧美一区二区蜜桃 | 免费人成精品欧美精品| 91精品午夜视频| 久久69国产一区二区蜜臀| 久久综合色播五月| 成人禁用看黄a在线| 国产精品国产三级国产专播品爱网| 99久久99久久久精品齐齐| 一区二区三区四区亚洲| 69堂成人精品免费视频| 黄页视频在线91| 国产精品久久久久一区二区三区共| 99国产精品久| 亚洲1区2区3区4区| 欧美大白屁股肥臀xxxxxx| 国产xxx精品视频大全| 亚洲人成精品久久久久| 欧美丰满美乳xxx高潮www| 狠狠色丁香婷婷综合| 18成人在线观看| 91精品欧美久久久久久动漫| 国产一区二区三区四区在线观看| 国产精品三级av在线播放| 在线精品视频免费播放| 精品一区二区三区免费毛片爱| 国产精品美女www爽爽爽| 欧洲色大大久久| 国产麻豆精品久久一二三| 亚洲色图清纯唯美|