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;
  }
}
-
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
2月前
|
存储 分布式计算 NoSQL
什么是 MongoDB ?
10月更文挑战第10天
16 0
|
3月前
|
存储 监控 NoSQL
MongoDB介绍
MongoDB介绍
51 1
|
NoSQL MongoDB
mongodb
mongodb
47 0
|
存储 SQL NoSQL
【mongo 系列】mongodb 学习一,基本 nosql 和 mongodb等数据库对比
咱们工作或者学习的过程中,接到一个需求,或者学习一个技能的时候,我们是如何去学习的呢?
143 2
|
NoSQL 前端开发 MongoDB
MongoDB应用
初始化路由模板 数据库和前端页面交互 编写注册的后台接口 先连接数据库 和前台进行数据交互 文章的后台接口 先查询所有的文章内容 发文章 一些验证方法 邮箱验证 用户名随机生成
70 0
|
存储
MongoDB-片键选择技巧
使用分片的目的是为了将数据存储到不同的服务器上, 所以在选择片键的时候,应该选择取值范围更广的字段作为片键,因为如果取值范围太小, 那么划分出来的数据段就太少, 那么分配到不同服务器的概率就越小, 例如:取值如果只有 true 或 false, 那么就只能划分出两个数据段, 那么也就最多只能保存到两台服务器上。
88 0
|
NoSQL Java API
五.MongoDB入门-SpringData操作MongoDB
MongoDB入门-SpringData操作MongoDB
|
存储 SQL 分布式计算
MongoDB的介绍
MongoDB的介绍
87 0
|
存储 分布式计算 NoSQL
MongoDB的主要特点
MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
159 0
|
NoSQL JavaScript 关系型数据库
MongoDB使用实际很简单
MongoDB是个文档型数据库,虽然前有CouchDB夹击,后有MySQL 8.x文档支持的追赶,但是丝毫不影响它在市场中占据的份额。