千家信息网

MongoDB中怎么封装一个操作类

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇文章给大家分享的是有关MongoDB中怎么封装一个操作类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MongoDB操作类封装mon
千家信息网最后更新 2026年11月04日MongoDB中怎么封装一个操作类

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

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 List 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 List 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(List addresses, List 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 MongoCollection 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 MongoCollection getCollection(MongoObject mongoObject, String collectionName) {  return getMongoClient(mongoObject).getDatabase(mongoObject.database).getCollection(collectionName); }  /**  * 获取collection对象  *  * @param mongoObject  * @return  */ public static MongoCollection 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 MongoCollection 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");    MongoCollection 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}}

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

对象 数据 数据库 封装 代码 客户 客户端 服务 单个 地址 更多 知识 篇文章 验证 不错 实用 内容 基础 就是 工作会 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 美国互联网保险保险科技 世界互联网领先科技成果 深圳齐家互联网科技 友谊互联网络科技 互联网养老 桔豆科技 佰商互联网科技有限公司 汉立互联网科技有限公司联系电话 安控科技rtu产品工业互联网 成都互联网科技公司工作好不好 中国科技创新与世界互联网大会 燊美集互联网科技有限公司 中科明德北京互联网科技 山东有哪些互联网科技公司 上海钢联属于互联网科技股吗 广州梦谷互联网科技有限公司领导 版纳互联网科技选哪家 兰石爱特工业互联网科技分公司 玉溪新华互联网科技怎么选 平安好医生打造互联网科技医疗 小牛互联网科技有限公司地址 上海睿民互联网科技有限公司 互联网巨头反垄断金融科技 上海致骋互联网科技 互联网公司会议桌创意科技软装饰 深圳市运趣互联网科技有限公司 速维有品互联网信息科技(苏州)有限公司 迪庆互联网科技招生 佛山市翊博互联网络科技有限公司 互联网数据科技专业 唐山双旺合互联网科技产业园
0