非关系型数据库MongoDB介绍:
非关系型数据库(NoSQL数据库)是指那些不使用传统关系模型(如表格、行和列)来组织和存储数据的数据库系统。与关系型数据库 MySQL相比,非关系型数据库采用了不同的数据模型和架构设计;
MongoDB 是一款面向文档(document-oriented)的、开源的、高性能的、分布式的、模式自由(schema-free)的 NoSQL 数据库管理系统。
使用Java连接mongodb并交互
Java应用程序与MongoDB交互通常使用官方提供的MongoDB Java驱动,该驱动提供了与JDBC类似的API;
主要组件包括MongoClient、MongoDatabase、MongoCollection、Document等。
编码实现使用MongoDB Java驱动进行连接
1、在官方网站下载驱动依赖包
2、添加MongoDB Java驱动依赖到项目中
3、创建MongoClient实例,连接到MongoDB服务器
4、选择要操作的MongoDatabase和MongoCollection
伪代码如下:
import com.mongodb.ConnectionString;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;
public class MongoDBConnection {
public static void main(String[] args) {
// 1. 定义MongoDB连接字符串
String connectionString = "mongodb://username:password@localhost:27017/?authSource=admin&ssl=false";
// 2. 创建MongoClient实例
MongoClient mongoClient = MongoClients.create(connectionString);
// 3. 连接到指定数据库
MongoDatabase database = mongoClient.getDatabase("DatabaseName");
// 4. 执行操作(例如,获取集合、查询数据等)
MongoCollection<Document> collection = database.getCollection("CollectionName");
// ... 进行数据库操作 ...
// 5. 在应用结束时关闭连接
mongoClient.close();
}
}
编码实现数据操作
5、使用MongoCollection的insertOne、updateOne、deleteOne等方法执行数据操作
6、使用find、aggregate等方法执行查询,并处理返回的Cursor或List
伪代码如下:
import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class MongoDBConnection {
public static void main(String[] args) {
// 1. 定义MongoDB连接字符串
String connectionString = "mongodb://username:password@localhost:27017/?authSource=admin&retryWrites=true&w=majority";
// 2. 创建MongoClientSettings对象
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString(connectionString))
.build();
// 3. 创建MongoClient实例
try (MongoClient mongoClient = MongoClients.create(settings)) {
// 4. 连接到指定数据库
MongoDatabase database = mongoClient.getDatabase("your_database_name");
// 5. 选择目标集合
MongoCollection<Document> collection = database.getCollection("your_collection_name");
// 6. 执行操作
// 插入一个文档
Document doc = new Document("title", "Example Document")
.append("content", "This is an example document.");
collection.insertOne(doc);
// 查询文档
FindIterable<Document> iterable = collection.find();
for (Document foundDoc : iterable) {
System.out.println(foundDoc.toJson());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}