JDBC连接MongoDB
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的更多相关文章
- JDBC连接SQL Server代码模板
* JDBC连接SQL Server数据库 代码模板* Connection: 连接数据库并担任传送数据的任务:* Statement : 执行SQL语句:* Re ...
- JDBC连接MySQL数据库代码模板
下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- nodejs连接mongodb的方法
一. var express = require('express'); var mongodb = require('mongodb'); var app = express(); app.use( ...
- Field 'id' doesn't have a default value(jdbc连接错误)
JDBC 连接错误: 编写数据库连接增添数据时,出现以下错误: error : java.sql.SQLException: Field 'id' doesn't have a default val ...
- JDBC连接MySQL 方法 实例及资料收集
JDBC连接MySQL 方法 实例及资料收集 准备工作 首先,安装MySQL,配置用户名和密码,创建数据库. 可参见之前的文章: http://www.cnblogs.com/mengdd/p/315 ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- Java使用JDBC连接MySQL数据库
1.引用 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写 ...
- jdbc连接oracle数据库
/*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...
随机推荐
- ZOJ3261并查集逆向处理
题意: 给你一些点,还有一些边,每个点上都有一个权值,然后有一些询问,分为两种, query a 询问与a直接或者间接想连的点中最大权值的是那个点,输出那个点,如果那个点的权值小于等于a的 ...
- Aircrack-ng破解无线WIFI密码
首先,如果kali是装在虚拟机里面的话,是不能用物理机的无线网卡的.所以,如果我们要想进行无线破解,需要外接一个无线网卡设备,并且该设备要支持 monitor 监听模式 iwconfig :系统配置无 ...
- CVE-2010-3333:Microsoft RTF 栈溢出漏洞调试分析
0x01 前言 CVE-2010-3333 漏洞是一个栈溢出漏洞,该漏洞是由于 Microsoft文档在处理 RTF 数据的对数据解析处理错误,在进行内存操作时没有对操作的数据进行长度限制,导致存在内 ...
- Win64 驱动内核编程-10.突破WIN7的PatchGuard
突破WIN7的PatchGuard WIN64 有两个内核保护机制,KPP 和 DSE.KPP 阻止我们 PATCH 内核,DSE 拦截我们加载驱动.当然 KPP 和 DSE 并不是不可战胜的,WIN ...
- CVE-2018-0802:Microsoft office 公式编辑器 font name 字段二次溢出漏洞调试分析
\x01 前言 CVE-2018-0802 是继 CVE-2017-11882 发现的又一个关于 font name 字段的溢出漏洞,又称之为 "第二代噩梦公式",巧合的是两个漏洞 ...
- 查看.class文件的工具
1.JDK 提供的 javap -c javap -c test.class 2.将test.class用idea打开.
- 记一次 .NET 某医院HIS系统 CPU爆高分析
一:背景 1. 讲故事 前几天有位朋友加 wx 抱怨他的程序在高峰期总是莫名其妙的cpu爆高,求助如何分析? 和这位朋友沟通下来,据说这问题困扰了他们几年,还请了微软的工程师过来解决,无疾而终,应该还 ...
- Codeforces Beta Round #73(Div2)
A - Chord 题意:就是环中有12个字符,给你三个字符,判断他们之间的间隔,如果第一个和第二个间隔是3并且第二个和第三个间隔是4,那么就输出minor,如果第一个和第二个间隔是4并且第二个和第三 ...
- windows调起git bash执行sh脚本定时统计git仓库代码量
本来挺简单的一个东西硬是弄了两天 心力交瘁 找了网上不少资料 整理一下发给大家 首先是统计每个人的代码量的git命令 在网上找的 我这里做了以下修改 git log --format='%aN'|so ...
- 测试中常用的链接URL----方便自己查找
1.TesterHome:https://testerhome.com/ 2.selenium的操作手册:https://selenium-python.readthedocs.io/ 3.