除了通过启动 mongo 进程进入Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的数据库访问方法。MongoDB 官方提供了 编程语言的驱动包,利用这些驱动包可以使用编程方法连接并操作 MongoDB 数据库。想要使用 Java 程序操作 MongoDB,需要确保您的电脑上已经安装了 MongoDB,并搭建好了 Java 的环境。
————————————————
原文链接:https://blog.csdn.net/weixin_45187434/article/details/128553717
本文在IntelliJ IDEA Community Edition 2023.2.2 版本上复现了上述链接的Java代码,并补充了部分内容。
目录
一、准备工作
1、下载安装MongoDB及Compass
链接:https://pan.baidu.com/s/106k4FZA2V4gX6EWflvekiw?pwd=9v1w
提取码:9v1w
2、下载安装Java集成开发环境IDEA
下载链接:https://pan.baidu.com/s/1CAZ72pVu4Nqe1exrdsahtA?pwd=do83
提取码:do83
3、Java pom.xml文件添加依赖
创建Maven环境,在project 中找到pom.xml文件,打开并添加以下依赖来操作 MongoDB 数据库:
二、Java 操作 MongoDB 数据库(简易版)
本次仅实现了Java与MongoDB的命令通信功能,可以在此基础上进行各种Java程序功能开发,不具有商品级别的Java应用软件的特点。在实际开发正式项目时,几乎不会采用本连接方法,生产级Java连接MongoDB公共架构,需要考虑可移植性与可靠性。
1、启动MongoDB
2、连接数据库
package org.example;
import com.mongodb.client.MongoDatabase;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
public class ConnectToMongodb {
public static void main(String[] args) {
// 创建 MongoDB 连接
MongoClient mongo = new MongoClient("localhost", 27017);
// 访问数据库
MongoDatabase database = mongo.getDatabase("sxh");
System.out.println("Connect to database successfully!");
System.out.println("MongoDatabase info is : " + database.getName());
}
}
运行后,IEDA输出结果部分截图:
3、创建集合
package org.example;
import com.mongodb.client.MongoDatabase;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
public class CreatingCollection {
public static void main(String[] args) {
// 创建 MongoDB 连接
MongoClient mongo = new MongoClient("localhost", 27017);
// 访问数据库
MongoDatabase database = mongo.getDatabase("sxh");
System.out.println("Connect to database successfully!");
System.out.println("MongoDatabase info is : " + database.getName());
// 创建集合
database.createCollection("Javatest");
System.out.println("create collection successfully!");
}
}
运行后,MongoDB可视化工具Compass显示结果:
运行后,IEDA输出结果部分截图:
4、列出所有集合
package org.example;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class ListOfCollection {
public static void main(String[] args) {
// 创建 MongoDB 连接
MongoClient mongo = new MongoClient("localhost", 27017);
// 访问数据库
MongoDatabase database = mongo.getDatabase("sxh");
System.out.println("Connect to database successfully!");
System.out.println("MongoDatabase info is : " + database.getName());
// 检索集合列表
for (String name : database.listCollectionNames()) {
System.out.println(name);
}
}
}
运行后,IEDA输出结果部分截图:
5、获取/选择集合
package org.example;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class SelectingCollection {
public static void main(String[] args) {
// 创建 MongoDB 连接
MongoClient mongo = new MongoClient("localhost", 27017);
// 访问数据库
MongoDatabase database = mongo.getDatabase("sxh");
System.out.println("Connect to database successfully!");
System.out.println("MongoDatabase info is : " + database.getName());
// 创建集合
MongoCollection<Document> collection = database.getCollection("orders");
System.out.println("chose collection : " + collection.getNamespace());
}
}
运行后,IEDA输出结果部分截图:
6、插入文档
package org.example;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class InsertingDocument {
public static void main(String[] args) {
// 创建 MongoDB 连接
MongoClient mongo = new MongoClient("localhost", 27017);
// 访问数据库
MongoDatabase database = mongo.getDatabase("sxh");
System.out.println("Connect to database successfully!");
System.out.println("MongoDatabase info is : " + database.getName());
// 检索集合
MongoCollection<Document> collection = database.getCollection("Javatest");
System.out.println("chose collection : " + collection.getNamespace());
Document document = new Document("title", "使用Java操作MongoDB")
.append("description", "database")
.append("time", 2024-05-30)
.append("address", "xinjiang")
.append("name", "NoSQL数据库");
// 将文档插入到集合中
collection.insertOne(document);
System.out.println("Document insert successfully!");
}
}
运行后,IEDA输出结果部分截图:
运行后,MongoDB可视化工具Compass显示结果:
7、查询文档
package org.example;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
public class RetrievingAllDocuments {
public static void main(String[] args) {
// 创建 MongoDB 连接
MongoClient mongo = new MongoClient("localhost", 27017);
// 访问数据库
MongoDatabase database = mongo.getDatabase("sxh");
System.out.println("Connect to database successfully!");
System.out.println("MongoDatabase info is : " + database.getName());
// 检索集合
MongoCollection<Document> collection = database.getCollection("Javatest");
System.out.println("chose collection : " + collection.getNamespace());
// 获取 iterable 对象
FindIterable<Document> iterDoc = collection.find();
int i = 1;
// 获取迭代器
for (Document document : iterDoc) {
System.out.println(document);
i++;
}
}
}
运行后,IEDA输出结果部分截图:
8、更新文档
package org.example;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;
import org.bson.Document;
public class UpdatingDocuments {
public static void main(String[] args) {
// 创建 MongoDB 连接
MongoClient mongo = new MongoClient("localhost", 27017);
// 访问数据库
MongoDatabase database = mongo.getDatabase("sxh");
System.out.println("Connect to database successfully!");
System.out.println("MongoDatabase info is : " + database.getName());
// 检索集合
MongoCollection<Document> collection = database.getCollection("Javatest");
System.out.println("chose collection : " + collection.getNamespace());
// 更新单个可用 updateOne
collection.updateMany(Filters.eq("title", "使用Java操作MongoDB"), Updates.set("major","大数据技术应用"));
System.out.println("Document update successfully...");
// 更新后检索文档
// 获取 iterable 对象
FindIterable<Document> iterDoc = collection.find();
int i = 1;
// 获取迭代器
for (Document document : iterDoc) {
System.out.println(document);
i++;
}
}
}
运行后,IEDA输出结果部分截图:
运行后,MongoDB可视化工具Compass显示结果:
9、删除文档
package org.example;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.Document;
public class DeletingDocuments {
public static void main(String[] args) {
// 创建 MongoDB 连接
MongoClient mongo = new MongoClient("localhost", 27017);
// 访问数据库
MongoDatabase database = mongo.getDatabase("sxh");
System.out.println("Connect to database successfully!");
System.out.println("MongoDatabase info is : " + database.getName());
// 检索集合
MongoCollection<Document> collection = database.getCollection("Javatest");
System.out.println("chose collection : " + collection.getNamespace());
// 删除文档 删除多个可用 deleteMany
collection.deleteOne(Filters.eq("title", "使用Java操作MongoDB"));
System.out.println("Document delete successfully...");
// 删除后检索文档
// 获取 iterable 对象
FindIterable<Document> iterDoc = collection.find();
int i = 1;
// 获取迭代器
for (Document document : iterDoc) {
System.out.println(document);
i++;
}
}
}
运行后,IEDA输出结果部分截图:
运行后,MongoDB可视化工具Compass显示结果:
10、删除集合
package org.example;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class DropingCollection {
public static void main(String[] args) {
// 创建 MongoDB 连接
MongoClient mongo = new MongoClient("localhost", 27017);
// 访问数据库
MongoDatabase database = mongo.getDatabase("sxh");
System.out.println("Connect to database successfully!");
System.out.println("MongoDatabase info is : " + database.getName());
// 检索集合
MongoCollection<Document> collection = database.getCollection("javatest");
System.out.println("chose collection : " + collection.getNamespace());
// 删除集合
collection.drop();
System.out.println("drop collection : " + collection.getNamespace());
// 检索集合列表
for (String name : database.listCollectionNames()) {
System.out.println(name);
}
}
}
运行后,IEDA输出结果部分截图:
运行后,MongoDB可视化工具Compass显示结果:
三、总结
本次每个操作都创建了一个.java文件,如下所示(不包含Java_mongodb.java和Main.java):
遇到的问题:IDEA输出结果乱码!
解决的办法:idea乱码解决方式大汇总_idea 乱码-CSDN博客,试了多种方法,最后做了以下设置才成功:
标签:Java,database,MongoDB,System,API,mongodb,println,import,com From: https://blog.csdn.net/xuhuishao/article/details/139307460