下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當(dāng)前位置:軟件下載吧 > 數(shù)據(jù)庫 > DB2 > MongoDB操作類封裝實(shí)例代碼

          MongoDB操作類封裝實(shí)例代碼

          時間:2024-03-04 00:33作者:下載吧人氣:31

          前言

          最近接到一個需求,要做MongoDB打點(diǎn)數(shù)據(jù)的統(tǒng)計(jì),在學(xué)習(xí)過MongoDB的操作之后,封裝了一個MongoDB的操作類,分為兩部分,基本思想是參照了自己寫過的mysql的操作類。一個是基本的操作類,包括所有基本操作的靜態(tài)方法,還有一個是mongoobject,就是具體操作的實(shí)現(xiàn)類。

          以后再寫如何用spring boot寫一個簡單的統(tǒng)計(jì)服務(wù)。

          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操作類的基礎(chǔ)類
           */
          public class MongoBase extends SourceCode {
           
           /**
            * 獲取服務(wù)地址list
            *
            * @param addresses
            * @return
            */
           public static List<ServerAddress> getServers(ServerAddress... addresses) {
            return Arrays.asList(addresses);
           }
           
           /**
            * 獲取服務(wù)地址
            *
            * @param host
            * @param port
            * @return
            */
           public static ServerAddress getServerAdress(String host, int port) {
            return new ServerAddress(host, port);
           }
           
           /**
            * 獲取認(rèn)證list
            *
            * @param credentials
            * @return
            */
           public static List<MongoCredential> getCredentials(MongoCredential... credentials) {
            return Arrays.asList(credentials);
           }
           
           /**
            * 獲取驗(yàn)證
            *
            * @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(List<ServerAddress> addresses, List<MongoCredential> credentials) {
            return new MongoClient(addresses, credentials);
           }
           
           /**
            * 連接mongo數(shù)據(jù)庫
            *
            * @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 MongoCollection<Document> getMongoCollection(MongoDatabase mongoDatabase, String collectionName) {
            return mongoDatabase.getCollection(collectionName);
           }
           
           /**
            * 關(guān)閉數(shù)據(jù)庫連接
            *
            * @param mongoClient
            */
           public static void MongoOver(MongoClient mongoClient) {
            mongoClient.close();
           }
           
           /**
            * 獲取mongo客戶端對象,通過servers和credentials對象創(chuàng)建
            *
            * @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 MongoCollection<Document> getCollection(MongoObject mongoObject, String collectionName) {
            return getMongoClient(mongoObject).getDatabase(mongoObject.database).getCollection(collectionName);
           }
           
           /**
            * 獲取collection對象
            *
            * @param mongoObject
            * @return
            */
           public static MongoCollection<Document> getCollectionOnline(MongoObject mongoObject, String collectionName) {
            return getMongoClientOnline(mongoObject).getDatabase(mongoObject.database).getCollection(collectionName);
           }
           
          }
          標(biāo)簽MongoDB,操作,封裝,實(shí)例,代碼

          相關(guān)下載

          查看所有評論+

          網(wǎng)友評論

          網(wǎng)友
          您的評論需要經(jīng)過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 久久久精品一区二区三区| 免费无码A片一区二三区| 在线免费观看一区二区三区| 国产综合精品一区二区三区| 精品性影院一区二区三区内射 | 一区二区三区亚洲视频| 亚洲一区二区三区四区视频| 成人国内精品久久久久一区| 无码国产精品一区二区免费式直播 | 波多野结衣一区在线观看| 亚洲av无码片区一区二区三区| 亲子乱av一区二区三区| 国产亚洲欧洲Aⅴ综合一区| 乱中年女人伦av一区二区| 99偷拍视频精品一区二区| 末成年女AV片一区二区| 无码AV中文一区二区三区| 无码人妻品一区二区三区精99 | 视频在线一区二区| 精品一区二区三区免费毛片| 无码一区二区三区在线| 国产成人欧美一区二区三区| 欧亚精品一区三区免费| 精品少妇人妻AV一区二区| 日本福利一区二区| 精品一区二区三区在线视频观看| 国产一区精品视频| 亚洲第一区精品观看| 精品无码人妻一区二区三区不卡| 亚洲国产一区二区三区| 国产亚洲情侣一区二区无| 99久久国产精品免费一区二区| 亚洲永久无码3D动漫一区| 日韩精品无码一区二区中文字幕| 91午夜精品亚洲一区二区三区 | 国产精品日本一区二区在线播放| 精品一区二区三区免费| 交换国产精品视频一区| 相泽南亚洲一区二区在线播放 | 日本一区免费电影| 久久国产精品一区|