MongoDB中怎么封装一个操作类
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,本篇文章给大家分享的是有关MongoDB中怎么封装一个操作类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MongoDB操作类封装mon
千家信息网最后更新 2025年11月14日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安全错误
数据库的锁怎样保障安全
数据库的物理模型
上海互联网智慧工厂软件开发
衡山县网络安全和信息化
上海综合软件开发概念设计
小学网络安全隐患排查报告
船舶清洁能源数据库
中国高程数据库
表格列里找出相同的数据库
河南暴雨影响网络服务器虚拟主机
网络分销软件开发
服务器节点管理
国家 统筹协调网络安全工作
将软件部署到服务器什么意思
pc无法登陆艾尔登法环游戏服务器
成都森力软件开发有限公司
计算机国三网络技术必考题
直播软件服务器
登陆wos数据库卡成球
海珠网络安全建设有哪些
密云区软件开发技术指导
网络安全背后的科学问题
专科工业软件开发技术专业
数据库产品的属性包括哪些
泰安微信公众号软件开发系统
青海信息化土地资产管理软件开发
网络安全标语卡片制作
中通吉网络技术有限公司看准网
汤原app软件开发公司
北京服务器负载均衡品牌虚拟主机
服务器操作系统快照是什么意思