pom文件中导入驱动

<!-- MongoDB驱动 -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.7</version>
</dependency>

示例代码

import com.mongodb.*;

import java.net.UnknownHostException;
import java.util.Date;
import java.util.Set; public class TestController { private static final String MONGO_HOST = "localhost";
private static final Integer MONGO_PORT = 27017;
private static final String MONGO_USERNAME = "test";
private static final String MONGO_PASSWORD = "1234";
private static final String MONGO_DB_NAME = "mongo-db-test";
private static final String MONGO_COLLECTION_NAME = "mongo-collection-test"; public static void main(String[] args) throws UnknownHostException { // 获取Mongo客户端
MongoClient mongoClient = new MongoClient(MONGO_HOST, MONGO_PORT);
/**
* 1.获取所有db名称并打印(mongodb未开启auth认证下可用)
*/
/*List<String> databaseNames = mongoClient.getDatabaseNames();
System.out.println(MONGO_HOST + ":" + MONGO_PORT.toString() + "包含如下数据库:");
for (String databaseName : databaseNames) {
System.out.println(databaseName);
}*/ /**
* 2.获取到指定db(若不存在,则mongo会创建该db)
*/
DB db = mongoClient.getDB(MONGO_DB_NAME);
// 2.1用户名&密码校验
boolean auth = db.authenticate(MONGO_USERNAME, MONGO_PASSWORD.toCharArray());
if (!auth) {
System.out.println(MONGO_DB_NAME + " connection failed!");
return;
}
System.out.println(MONGO_DB_NAME + " connection success!"); // 2.2获取该db下所有集合名称并打印
Set<String> collectionNames = db.getCollectionNames();
System.out.println(db.getName() + "包含如下集合:");
for (String collectionName : collectionNames) {
System.out.println(collectionName);
} // 2.3获取指定集合(若不存在,则mongo会创建该集合)
DBCollection collection = db.getCollection(MONGO_COLLECTION_NAME); /**
* 3.增删查改
*/
// 3.1插入一条文档
BasicDBObject document = new BasicDBObject();
document.put("name", "Cheung");
document.put("age", 24);
document.put("address", "Beijing");
document.put("date", new Date());
collection.insert(document); // 3.2查询一条文档
BasicDBObject searchObj = new BasicDBObject();
searchObj.put("name", "Cheung");
DBCursor cursor = collection.find(searchObj);
if (cursor.hasNext()) {
System.out.println("查询到的文档为:");
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} else {
System.out.println("该文档不存在!");
} // 3.3修改一条文档
BasicDBObject newDocument = new BasicDBObject();
newDocument.put("name", "Cheung-updated");// 新文档
BasicDBObject updateObj = new BasicDBObject();
updateObj.put("$set", newDocument);
collection.update(searchObj, updateObj);// 更新 // 3.4查询修改后的文档(修改确认)
DBCursor cursor2 = collection.find(newDocument);
if (cursor2.hasNext()) {
System.out.println("修改后的文档为:");
while (cursor2.hasNext()) {
System.out.println(cursor2.next());
}
} else {
System.out.println("该文档不存在!");
} // 3.5删除该文档
collection.remove(newDocument); // 3.6查询该文档是否存在(删除确认)
DBCursor cursor3 = collection.find(newDocument);
if (cursor3.hasNext()) {
System.out.println("查询到的文档为:");
while (cursor3.hasNext()) {
System.out.println(cursor3.next());
}
} else {
System.out.println("该文档不存在!");
} } }

JDBC连接MongoDB的更多相关文章

  1. JDBC连接SQL Server代码模板

    *                  JDBC连接SQL Server数据库 代码模板* Connection: 连接数据库并担任传送数据的任务:* Statement :  执行SQL语句:* Re ...

  2. JDBC连接MySQL数据库代码模板

    下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...

  3. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  4. nodejs连接mongodb的方法

    一. var express = require('express'); var mongodb = require('mongodb'); var app = express(); app.use( ...

  5. Field 'id' doesn't have a default value(jdbc连接错误)

    JDBC 连接错误: 编写数据库连接增添数据时,出现以下错误: error : java.sql.SQLException: Field 'id' doesn't have a default val ...

  6. JDBC连接MySQL 方法 实例及资料收集

    JDBC连接MySQL 方法 实例及资料收集 准备工作 首先,安装MySQL,配置用户名和密码,创建数据库. 可参见之前的文章: http://www.cnblogs.com/mengdd/p/315 ...

  7. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  8. Java使用JDBC连接MySQL数据库

    1.引用 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写 ...

  9. jdbc连接oracle数据库

    /*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...

随机推荐

  1. C#-Socket(TCP)

    //提示,线程里面不要给控件赋值 LinkSocket.Send(result, length, 0); 自己挂起 private void button1_Click(object sender, ...

  2. typecho+宝塔搭建

    在这个互动视频中很详细的讲解到了 https://www.bilibili.com/video/BV1o4411r7x5?spm_id_from=pageDriver

  3. controller通过map返回减少dto类的创建

    更多精彩关注公众号 不要把实体类对象直接返给前端 ,首先想到的是创建DTO,但是这样就造成大量的DTO,显得很臃肿,为了减少dto的数量,像一些比较少的参数避免创建不必要的DTO,通过本次优化达到业务 ...

  4. 正则表达式:(mysql)REGEXP

    检索列prod_name包含文本1000的所以行 SELECT prod_name FROM  products WHERE prod_name REGEXP '1000' ORDER BY prod ...

  5. Redis(附Win10版本 和可视化工具)

    启动服务端 通过win+r,cmd 运行命令行然后输入如下指令: G: cd software cd G:\software\redis-64.3.0.503 redis-server.exe 这样就 ...

  6. 想要测试Dubbo接口?测试的关键点在哪里?

    Dubbo接口如何测试? 这个dubbo如何测试,dubbo接口测试什么玩意儿?   RPC的有一个类型,叫Dubbo接口. 那这个接口如何测试?测试的关键点在哪里? 这个面试问题,我觉得大家可能就有 ...

  7. 剖析XAML语言

    这节剖析一下XAML(读作:zaml)--这一WPF中的UI设计语言. XAML 在wpf中,UI部分使用xaml语言来编写,xaml语言是由xml语言派生而来的语言,所以在xaml中我们可以看到很多 ...

  8. [bug] IDEA中解决程序包javax.servlet不存在

    参考 https://blog.csdn.net/qq_41283865/article/details/81865806

  9. 【转载】CentOS 7 系统区域(语言)和键盘设置

    CentOS 7 系统区域(语言)和键盘设置   即使是在window中,平常说的语言设置这一项也是归类为系统区域,CentOS可以通过修改/etc/locale.conf配置文件或使用localec ...

  10. Docker Swarm(三)Service(服务)分配策略

    Service的分配原則 預設分散至多個nodes上 使用率較低的node優先配置 使用者可自行定義此分配模式 Service分配的3種方式 Service Constraints (服务约束) 参考 ...