在学习Java mongodb api时发现,可以调用不同的java mongodb api来连接数据库并进行相关操作。

方式一:

该方式使用mongoClient.getDB("xxx")来获取DB对象,然后通过getCollection("xxx")获取相应的集合。其他操作略。

import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient; import java.util.ArrayList;
import java.util.Date;
import java.util.List; public class MonConnections { //Mongo db 批量插入数据
private static MongoClient mongoClient = new MongoClient("127.0.0.1", 27017);
private static long count = 2000000;
public static MongoClient getClient(){
return mongoClient;
} public static void main(String[] args){
List<DBObject> list = new ArrayList<>();
DBCollection collection = mongoClient.getDB("test").getCollection("book"); for (int i = 0; i < 2200000; i++){
DBObject object = new BasicDBObject();
object.put("id", String.valueOf(count));
Date date = new Date();
object.put("add_time", date);
object.put("title", "mongo"+count++);
list.add(object);
if (i != 0 && i %10000 == 0){
System.out.println("插入" + " " + i + "本书");
collection.insert(list);
list.clear();
}
} }
}

方式二:

可以看出方式二使用的是getDatabase("xxx")来获取数据库对象MongoDatabase,集合的对象也是MongoCollection<Document>。

    @Test
public void getCollection( ){
try{
// 连接到 mongodb 服务
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// 连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("mongodbname");
System.out.println("Connect to database successfully"); MongoCollection<Document> collection = mongoDatabase.getCollection("javatest");
//DBCollection
System.out.println("集合 test 选择成功");
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}

问题:什么时候使用方式一?什么时候应该用方式二?

驱动2.x使用方式一,驱动3.0及以后使用方式二。

驱动3.0也保留了DBObject / DBCollection / DB类。但是在getDB()方法中,提示了弃用。

因此,一般建议是将Document / MongoCollection / MongoDatabase用于新的应用程序开发。

参考资料:https://stackoverflow.com/questions/29364787/mongocollection-versus-dbcollection-java

Java mongodb api疑问之MongoCollection与DBCollection的更多相关文章

  1. Java MongoDB : Save image example

    In this tutorial, we show you how to save an image file into MongoDB, via GridFS API. The GridFS API ...

  2. Java + MongoDB Hello World Example--转载

    原文地址:http://www.mkyong.com/mongodb/java-mongodb-hello-world-example/ A simple Java + MongoDB hello w ...

  3. 【MongoDB数据库】Java MongoDB CRUD Example

    上一页告诉我们MongoDB 命令入门初探,本篇blog将基于上一篇blog所建立的数据库和表完毕一个简单的Java MongoDB CRUD Example.利用Java连接MongoDB数据库,并 ...

  4. java MongoDB查询(二)复杂查询

    前言 在上篇<java MongoDB查询(一)简单查询>中我们简单了解了下查询,但是仅仅有那些查询是不够用的,还需要复杂的查询,这篇就这点进行叙述. 1.数据结构 集合:firstCol ...

  5. .NET 云原生架构师训练营(模块二 基础巩固 MongoDB API实现)--学习笔记

    2.5.7 MongoDB -- API实现 问题查询单个实现 问题查询列表实现 问题跨集合查询实现 问题创建实现 问题更新实现 问题回答实现 问题评论实现 问题投票实现 回答实现 QuestionC ...

  6. .NET 云原生架构师训练营(模块二 基础巩固 MongoDB API重构)--学习笔记

    2.5.8 MongoDB -- API重构 Lighter.Domain Lighter.Application.Contract Lighter.Application LighterApi Li ...

  7. 关于c#调用java中间件api的几个问题

    由于项目需要,做的c#客户端数据库连接串首先肯定不能写死的程序里(数据库很容易被攻击,我们的项目半年改了几次密码...) 放置在配置文件内,都可以看得到,最开始想法将配置文件加密,老师说加密过的文件还 ...

  8. Kylin Java RESTful API

    最近在做大数据方面的开发, 学习研究了一段时间的kylin系统, 对于前端开发需要使用 RESTful API ,但是官网并没有提供详细的Java  API. 经过几天的看文档,最终写出了 Java ...

  9. Java 2D API - 2. Graphics 入门

    Java 2D API强大而复杂,不过大多时候我们只需使用java.awt.Graphcis类的部分功能.下面的内容将覆盖大多数的常见应用. Graphics 类中的方法大致可以分为两类: Draw ...

随机推荐

  1. ######【Python】【基础知识】Python的介绍 ######

    Python 是一种面向对象.解释型计算机程序设计语言. Python是什么? Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言 ...

  2. idea快捷生成

    列模式: shift+alt+insert进入列选择模式,可选择一列或者多列 shift+alt+insert退出列选择模式 大小写转换: Ctrl + Shift + U 循环: iter  增强版 ...

  3. c++11特性

    0. 简介 在c++11标准中, 语言本身和标准库都增加了很多新内容. 里面的某些特性, 会让你在代码编写时更优雅. 我的环境: 系统: ubuntu16.04 g++版本: g++5.4.0 使用c ...

  4. Linux下通过ssh上传下载文件

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/jun8148/article/deta ...

  5. h5中的分组元素figure、figcaption、hgroup元素介绍

    分组元素用于对页面中的内容进行分组. figure元素和figcaption元素 figure元素用于定义独立的流内容(图像.图表.照片.代码等),一般指一个独立的单元.figure元素的内容应该与主 ...

  6. linux环境下Python搭建

    安装gcc   yum install gcc 安装zlib   yum -y install zlib* 安装openssl-devel   yum install openssl-devel -y ...

  7. 进阶Java编程(1)多线程编程

    Java多线程编程 1,进程与线程 在Java语言里面最大的特点是支持多线程的开发(也是为数不多支持多线程的编程语言Golang.Clojure方言.Elixir),所以在整个的Java技术学习里面, ...

  8. Eclipse连接数据库报错Local variable passwd defined in an enclosing scope must be final or effectively final

    其实原因很简单,就是翻译的结果 匿名内部类和局部内部类只能引用外部的fianl变量 把变量变成fianl就行了  第一次知道啊    记小本本.......

  9. Sublime Text3 插件收录

    收录常用的Sublime Text3 插件, 方便安装使用,免得每次一个个的搜, 欢迎补充 安装方法直接打开install package 搜索安装 1. Babel 支持react jsx语法 2. ...

  10. C#Linq之求和,平均值,最大值,最小值

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...