MongoDB中怎么封装一个操作类
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,本篇文章给大家分享的是有关MongoDB中怎么封装一个操作类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MongoDB操作类封装mon
千家信息网最后更新 2024年11月30日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 ListgetServers(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 MongoCollectiongetMongoCollection(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"); MongoCollectionapp = 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安全错误
数据库的锁怎样保障安全
idea如何连接数据库
多特软件开发安全吗
网络安全实战 pdf
软件开发适合那些工作室
数据库思索的解决办法
天龙八部小无相功在哪个服务器
江苏机电软件开发发展现状
不同数据库表插入
ex文档管理服务器
临夏州网络安全宣传
网络安全怎么写写句子
管理打印服务器配置
政府网络安全中心
青岛存储服务器服务
山西先飞互联网络科技公司
山西常见软件开发报价
江苏省网络安全检察院
开展网络安全反诈宣讲
推广网络安全法的反问标题
上海购买网络技术转让价目表
网络安全专项检查内容
青铜镜数据库
2021年网络安全教育ppt
软件开发输出项
数据库中包含学生表吗
如何将自己的数据库部署在云端
怎么样维护服务器安全
萌猪辅助导入服务器
内蒙古驭驰互联网科技
泰拉瑞亚正版服务器怎么联机