本篇文章给大家分享的是有关MongoDB中怎么封装一个操作类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

MongoDB操作类封装

mongobase代码如下:

packagecom.fun.mongodb;importcom.fun.frame.SourceCode;importcom.mongodb.MongoClient;importcom.mongodb.MongoClientURI;importcom.mongodb.MongoCredential;importcom.mongodb.ServerAddress;importcom.mongodb.client.MongoCollection;importcom.mongodb.client.MongoDatabase;importorg.bson.Document;importjava.util.Arrays;importjava.util.List;/***mongo操作类的基础类*/publicclassMongoBaseextendsSourceCode{/***获取服务地址list**@paramaddresses*@return*/publicstaticList<ServerAddress>getServers(ServerAddress...addresses){returnArrays.asList(addresses);}/***获取服务地址**@paramhost*@paramport*@return*/publicstaticServerAddressgetServerAdress(Stringhost,intport){returnnewServerAddress(host,port);}/***获取认证list**@paramcredentials*@return*/publicstaticList<MongoCredential>getCredentials(MongoCredential...credentials){returnArrays.asList(credentials);}/***获取验证**@paramuserName*@paramdatabase*@parampassword*@return*/publicstaticMongoCredentialgetMongoCredential(StringuserName,Stringdatabase,Stringpassword){returnMongoCredential.createCredential(userName,database,password.toCharArray());}/***获取mongo客户端**@paramaddresses*@paramcredentials*@return*/publicstaticMongoClientgetMongoClient(List<ServerAddress>addresses,List<MongoCredential>credentials){returnnewMongoClient(addresses,credentials);}/***连接mongo数据库**@parammongoClient*@paramdatabaseName*@return*/publicstaticMongoDatabasegetMongoDatabase(MongoClientmongoClient,StringdatabaseName){returnmongoClient.getDatabase(databaseName);}/***连接mongo集**@parammongoDatabase*@paramcollectionName*@return*/publicstaticMongoCollection<Document>getMongoCollection(MongoDatabasemongoDatabase,StringcollectionName){returnmongoDatabase.getCollection(collectionName);}/***关闭数据库连接**@parammongoClient*/publicstaticvoidMongoOver(MongoClientmongoClient){mongoClient.close();}/***获取mongo客户端对象,通过servers和credentials对象创建**@parammongoObject*@return*/publicstaticMongoClientgetMongoClient(MongoObjectmongoObject){MongoClientmongoClient=newMongoClient(getServers(getServerAdress(mongoObject.host,mongoObject.port)),getCredentials(getMongoCredential(mongoObject.user,mongoObject.database,mongoObject.password)));returnmongoClient;}/***获取mongo客户端对象,通过uri方式连接**@parammongoObject*@return*/publicstaticMongoClientgetMongoClientOnline(MongoObjectmongoObject){Stringformat=String.format("mongodb://%s:%s@%s:%d/%s",mongoObject.user,mongoObject.password,mongoObject.host,mongoObject.port,mongoObject.database);returnnewMongoClient(newMongoClientURI(format));}/***获取collection对象**@parammongoObject*@return*/publicstaticMongoCollection<Document>getCollection(MongoObjectmongoObject,StringcollectionName){returngetMongoClient(mongoObject).getDatabase(mongoObject.database).getCollection(collectionName);}/***获取collection对象**@parammongoObject*@return*/publicstaticMongoCollection<Document>getCollectionOnline(MongoObjectmongoObject,StringcollectionName){returngetMongoClientOnline(mongoObject).getDatabase(mongoObject.database).getCollection(collectionName);}}

mongoobject的代码如下:

packagecom.fun.mongodb;importcom.mongodb.MongoClient;importcom.mongodb.client.MongoCollection;importorg.bson.Document;/***mongo数据库配置对象,针对单个数据服务,单个身份验证*/publicclassMongoObjectextendsMongoBase{Stringhost;intport;Stringuser;Stringpassword;Stringdatabase;MongoClientmongoClient;/***创建数据连接**@paramhost*@paramport*@paramuser*@parampassword*@paramdatabase*/publicMongoObject(Stringhost,intport,Stringuser,Stringpassword,Stringdatabase){this.host=host;this.port=port;this.user=user;this.password=password;this.database=database;this.mongoClient=getMongoClient(this);}/***创建数据库连接**@paramport*@paramhost*@paramuser*@parampassword*@paramdatabase*/publicMongoObject(intport,Stringhost,Stringuser,Stringpassword,Stringdatabase){this.host=host;this.port=port;this.user=user;this.password=password;this.database=database;this.mongoClient=getMongoClientOnline(this);}/***获取colletion对象**@paramcollectionName*@return*/publicMongoCollection<Document>getMongoCollection(StringcollectionName){MongoClientmongoClientOnline=getMongoClientOnline(this);returnmongoClientOnline.getDatabase(database).getCollection(collectionName);}/***关闭连接*/publicvoidover(){MongoOver(this.mongoClient);}}@OverridepublicMongoObjectclone(){returnnewMongoObject(this.host,this.port,this.user,this.password,this.database);}publicMongoObjectclone2(){returnnewMongoObject(this.port,this.host,this.user,this.password,this.database);}

具体效果非常不错,测试代码如下:

publicstaticvoidmain(String[]args){MongoObjectready=newMongoObject("*****",5117,"fission_record","fission_record","fission_record");MongoCollection<Document>app=ready.getMongoCollection("app_logs_20181109");Documentfirst=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}}

以上就是MongoDB中怎么封装一个操作类,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。