MongoDB——JDBC

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 下面是最近项目中用的针对于MongoDB数据库封装的JDBC,先做一个大概的了解,关于用法,下一篇博文将详细介绍

  下面是最近项目中用的针对于MongoDB数据库封装的JDBC,先做一个大概的了解,关于用法,下一篇博文将详细介绍


-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoDatabase;
public class MongoJdbc {
  /** 客户端连接池 */
  private static MongoClient mongoClient;
  /** 线程安全的数据库链接 */
  private static MongoDatabase mongoDatabase = null;
  /** 服务器信息 */
  private String repset;
  /** 数据库信息 */
  private String database;
  /** 用户名 */
  private String user;
  /** 密码 */
  private String password;
  /** 单个host允许链接的最大链接数 */
  private String connectionsPerHost;
  /** 线程队列数 */
  private String threadsAllowedToBlockForConnectionMultiplier;
  public void setRepset(String repset) {
    this.repset = repset;
  }
  public void setDatabase(String database) {
    this.database = database;
  }
  public void setUser(String user) {
    this.user = user;
  }
  public void setPassword(String password) {
    this.password = password;
  }
  public void setConnectionsPerHost(String connectionsPerHost) {
    this.connectionsPerHost = connectionsPerHost;
  }
  public void setThreadsAllowedToBlockForConnectionMultiplier(String threadsAllowedToBlockForConnectionMultiplier) {
    this.threadsAllowedToBlockForConnectionMultiplier = threadsAllowedToBlockForConnectionMultiplier;
  }
  private void init() {
    List<ServerAddress> serverAddressList = new ArrayList<ServerAddress>();
    if (this.repset == null || "".equals(this.repset)) {
      throw new MongodbException("未配置ip地址和端口号!");
    }
    if (this.connectionsPerHost == null || "".equals(this.connectionsPerHost)) {
      throw new MongodbException("未配置单个host允许链接的最大链接数!");
    }
    if (this.threadsAllowedToBlockForConnectionMultiplier == null || "".equals(this.threadsAllowedToBlockForConnectionMultiplier)) {
      throw new MongodbException("未配置线程队列数!");
    }
    if (this.user == null || "".equals(this.user)) {
      throw new MongodbException("未配置用户名!");
    }
    if (this.password == null || "".equals(this.password)) {
      throw new MongodbException("未配置密码!");
    }
    if (this.database == null || "".equals(this.database)) {
      throw new MongodbException("未配置库名!");
    }
    String[] hostPorts = this.repset.split(",");
    for (int i = 0; i < hostPorts.length; i++) {
      String[] hostPortArr = hostPorts[i].split(":");
      if (hostPortArr.length != 2) {
        throw new MongodbException("mongodb主机配置异常");
      }
      String host = hostPortArr[0];
      String port = hostPortArr[1];
      ServerAddress serverAddress = new ServerAddress(host, Integer.parseInt(port));
      serverAddressList.add(serverAddress);
    }
    MongoClientOptions mongoClientOptions = new MongoClientOptions.Builder().connectionsPerHost(Integer.parseInt(this.connectionsPerHost))
        .threadsAllowedToBlockForConnectionMultiplier(Integer.parseInt(this.threadsAllowedToBlockForConnectionMultiplier)).build();
    MongoCredential credential = MongoCredential.createCredential(this.user, this.database, this.password.toCharArray());
    mongoClient = new MongoClient(serverAddressList, Arrays.asList(credential), mongoClientOptions);
    mongoDatabase = mongoClient.getDatabase(database);
  }
  public MongoDatabase getMongodb() {
    if (null == mongoDatabase) {
      init();
    }
    return mongoDatabase;
  }
}
-
相关文章
|
安全 Java 持续交付
Java本地远程服务器debug调试
Java本地远程服务器debug调试
619 0
|
NoSQL 数据可视化 关系型数据库
推荐几个好用的redis可视化工具
推荐几个好用的redis可视化工具
17669 1
|
11月前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过使用 MongoDB Connector for BI 和 JDBC,开发者可以在 Java 中使用 SQL 语法查询 MongoDB 数据库。这种方法对于熟悉 SQL 的团队非常有帮助,能够快速实现对 MongoDB 数据的操作。同时,也需要注意到这种方法的性能和功能限制,根据具体应用场景进行选择和优化。
438 9
|
5月前
|
Linux 虚拟化 iOS开发
Windows Server 2022 OVF (2025 年 6 月更新) - VMware 虚拟机模板
Windows Server 2022 OVF (2025 年 6 月更新) - VMware 虚拟机模板
397 6
Windows Server 2022 OVF (2025 年 6 月更新) - VMware 虚拟机模板
|
6月前
|
移动开发 安全 API
VMware vCenter Server 7.0U3v 下载 - 集中管理 vSphere 环境
VMware vCenter Server 7.0U3v 下载 - 集中管理 vSphere 环境
419 1
|
11月前
|
SQL 存储 人工智能
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
Vanna 是一个开源的 Python RAG(Retrieval-Augmented Generation)框架,能够基于大型语言模型(LLMs)为数据库生成精确的 SQL 查询。Vanna 支持多种 LLMs、向量数据库和 SQL 数据库,提供高准确性查询,同时确保数据库内容安全私密,不外泄。
1637 7
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
18583 31
|
负载均衡 网络协议 中间件
IP负载均衡技术
【8月更文挑战第17天】IP负载均衡技术
340 4
|
Java 应用服务中间件
SpringBoot 记录 access.log 日志
SpringBoot 记录 access.log 日志
403 0
SpringBoot 记录 access.log 日志