写个java 连接mongodb的程序,存储的时候数据库有,就不存了,没有就存库
时间: 2023-09-07 21:05:31 浏览: 93
JAVA对MongoDB的操作.doc
### 回答1:
这是一个示例代码,演示如何使用 Java 连接 MongoDB 并存储数据:
```
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 MongoDBJava {
public static void main(String[] args) {
// 连接到 MongoDB 服务器
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
// 获取数据库
MongoDatabase database = mongoClient.getDatabase("testdb");
// 获取集合
MongoCollection<Document> collection = database.getCollection("testcollection");
// 构建文档
Document document = new Document("name", "John Doe")
.append("age", 30)
.append("email", "johndoe@example.com");
// 检查文档是否存在
Document foundDocument = collection.find(document).first();
if (foundDocument == null) {
// 如果文档不存在,则存储文档
collection.insertOne(document);
System.out.println("Document inserted successfully");
} else {
System.out.println("Document already exists");
}
}
}
```
注意:需要添加 MongoDB Java 驱动的依赖,可以在 Maven 项目中添加以下依赖:
```
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>4.0.4</version>
</dependency>
```
### 回答2:
下面是一个用Java编写的连接MongoDB并实现存储数据的程序:
```java
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.BasicDBObject;
public class MongoDBExample {
public static void main(String[] args) {
try {
// 连接MongoDB数据库
MongoClient mongoClient = new MongoClient("localhost", 27017);
// 获取要连接的数据库
DB database = mongoClient.getDB("mydb");
// 获取要连接的集合
DBCollection collection = database.getCollection("mycollection");
// 创建要插入的数据
BasicDBObject document = new BasicDBObject();
document.put("name", "John");
document.put("age", 25);
// 查询数据库中是否已存在该数据
BasicDBObject query = new BasicDBObject("name", "John");
if (collection.findOne(query) == null) {
// 若不存在,则插入数据到数据库
collection.insert(document);
System.out.println("数据已存入数据库。");
} else {
System.out.println("该数据已存在于数据库中。");
}
// 关闭数据库连接
mongoClient.close();
} catch (MongoException e) {
e.printStackTrace();
}
}
}
```
上述程序通过MongoDB的Java驱动连接了本地的MongoDB数据库,并在数据库找到重复的数据时不再存储,否则将数据存储到数据库中。
### 回答3:
下面是一个使用Java连接MongoDB并进行数据存储的程序示例:
```java
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import org.bson.Document;
public class MongoDBExample {
public static void main(String[] args) {
// MongoDB服务地址和端口号
String host = "localhost";
int port = 27017;
// 连接到MongoDB数据库
MongoClient mongoClient = new MongoClient(host, port);
// 认证信息(如果需要的话)
// MongoCredential credential = MongoCredential.createCredential(username, database, password.toCharArray());
// mongoClient = new MongoClient(new ServerAddress(host, port), Collections.singletonList(credential));
// 选择数据库
MongoDatabase database = mongoClient.getDatabase("mydatabase");
// 选择集合(表)
MongoCollection<Document> collection = database.getCollection("mycollection");
// 创建要存储的文档
Document document = new Document();
document.append("name", "John");
document.append("age", 25);
// 查询数据库中是否存在相同文档
FindIterable<Document> iterable = collection.find(document);
// 如果数据库中不存在相同文档,则存储到数据库
if (iterable.first() == null) {
collection.insertOne(document);
System.out.println("数据已存储到MongoDB");
} else {
System.out.println("数据库中已存在相同文档,不进行存储");
}
// 关闭连接
mongoClient.close();
}
}
```
上述程序中,首先创建一个MongoClient对象,指定MongoDB的地址和端口号。然后选择要连接的数据库和集合。接着创建要存储的文档,通过查询数据库中是否存在相同文档来决定是否进行存储操作。最后关闭连接。
请注意,以上示例仅为连接MongoDB并进行存储操作的简单示例,实际应用中可能需要根据具体需求进行适当的调整和异常处理。另外,还可以使用相关的MongoDB驱动和工具类,如Morphia、Spring Data MongoDB等来简化操作。
阅读全文