JDBC MongoDB 连接
原文:https://www.studytonight.com/java/connecting-to-mongodb.php
在本教程中,我们将讨论 Java 应用和 MongoDB 之间的数据库连接。MongoDB 是一个基于文档的数据库,用于将数据存储为 JSON 格式,而不是表或关系。它与关系数据库完全不同,比如:mysql。你可以从我们最新的教程 MongoDB 教程中了解 MongoDB。
现在让我们开始学习连接过程。在开始之前,请确保您的计算机系统中安装了 mongoDB。这些是连接时应该遵循的一些先决条件。
先决条件
- 使用 MongoDB 27017 的默认端口在本地主机上运行的 MongoDB。参见安装 Mongodb 安装步骤。
- MongoDB 驱动。
安装 mongodb 后,拥有 MongoDB 驱动也很重要。所以要得到这些,你可以访问官方网站 MongoDB Java Driver 或者从我们的网站下载 Jar 文件。将这个 JAR 文件保存到您的 java 应用目录中。
注意:【mongodb 连接不需要使用 JDBC API,它的 API 是完全独立的,不需要任何其他外部库。
以下是 Java 应用连接 mongodb 数据库的基本步骤。
创建 MongoDB 实例
您可以在没有任何参数的情况下实例化 MongoClient 对象,以连接到在端口:27017 上的本地主机上运行的 MongoDB 实例。使用以下代码。
MongoClient mongoClient = MongoClients.create();
您可以指定 mongodb 主机和运行端口,以防 mongodb 在不同的端口上运行。
MongoClient mongoClient = MongoClients.create("mongodb://hostOne:27017");
访问数据库
创建 mongoDB 实例后,使用其getDatabase()
方法通过将数据库名称指定给getDatabase()
方法来访问数据库。如果数据库不存在,MongoDB 会在您第一次存储该数据库的数据时创建该数据库。例如,我们正在连接到今晚研究数据库。
MongoDatabase database = mongoClient.getDatabase("studytonight");
访问收藏
创建 mongoDB 数据库后,使用其getCollection()
方法通过指定名称来访问集合。如果集合不存在,MongoDB 会在您首次存储该集合的数据时创建该集合。
使用以下代码创建集合,例如:学生。
MongoCollection<Document> collection = database.getCollection("student");
创建文档
要使用 Java 驱动创建文档,请使用 document 类,并使用其append()
方法将附加字段和值包含到文档对象中。例如,请参见下面的代码。
Document doc = new Document("name", "Ramesh");
doc.append("id",12);
插入文档
创建文档后,可以将文档插入到集合中。我们也可以插入单个和多个文档。要将单个文档插入集合,可以使用集合的insertOne()
方法。
collection.insertOne(doc);
要添加多个文档,可以使用集合的 insertMany()方法,该方法需要插入一个文档列表。
获取文档
您可以使用集合的find()
方法从文档中获取记录。find()方法返回一个 iterable,这样您就可以循环访问各个数据。
现在让我们将所有这些步骤放入一个 Java 应用中,并连接到 MongoDB 数据库。
Java MongoDB 示例:
这里我们通过指定主机和端口号连接到 mongodb,然后创建一个数据库和一个集合来存储数据。insertOne()
方法用于在文档中插入一条记录。见下面的例子。
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class Demo {
public static void main(String[] args){
try{
// Connecting To MongoDB
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Creating DataBase
MongoDatabase db = mongoClient.getDatabase("studytonight");
// Creating Collection/Table
MongoCollection<Document> table = db.getCollection("student");
// Creating Document/Record
Document doc = new Document("name", "Ramesh");
doc.append("id",12);
// Inserting Data
table.insertOne(doc);
}catch(Exception e){
System.out.println(e);
}
}
}
从 MongoDB 访问数据
创建数据库并插入数据后,现在让我们获取该记录。我们使用find()
方法从文档中获取记录,然后迭代记录,并使用它们的名称进行显示。见下面的例子。
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class Demo {
public static void main(String[] args){
try{
// Connecting To MongoDB
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Creating DataBase
MongoDatabase db = mongoClient.getDatabase("studytonight");
// Creating Collection/Table
MongoCollection<Document> table = db.getCollection("student");
// Accessing Data
FindIterable<Document> data = table.find();
// Traversing Data
for(Document record : data) {
System.out.println(record.getInteger("id")+" : "+record.getString("name"));
}
mongoClient.close();
}catch(Exception e){
System.out.println(e);
}
}
}
12:拉梅什
JSON 格式的访问
MongoDB 是一个基于文档的数据库,使用类似 JSON 的格式将数据存储到文档中。它提供了一种方法toJSON()
将数据访问为我们在本例中使用的 JSON 格式。
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class Demo {
public static void main(String[] args){
try{
// Connecting To MongoDB
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Creating DataBase
MongoDatabase db = mongoClient.getDatabase("studytonight");
// Creating Collection/Table
MongoCollection<Document> table = db.getCollection("student");
// Accessing Data
FindIterable<Document> data = table.find();
// Traversing Data
for(Document record : data) {
System.out.println(record.toJson());
}
mongoClient.close();
}catch(Exception e){
System.out.println(e);
}
}
}
{ " _ id ":{ " $ oid ":" 5 ECE 65 F5 和 8aa304abbf99953"},"名称":" Ramesh "," id": 12}