MongoDB Java 数据库操作示例
·
MongoDB Java Driver 3.10.2 Maven 依赖
Maven 依赖地址
对于 MongoDB Java Driver 3.10.2 版本,Maven 依赖配置如下:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.10.2</version>
</dependency>
使用示例
以下是使用 MongoDB Java Driver 3.10.2 进行数据库操作的完整示例:
1. 连接 MongoDB
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;
public class MongoDBExample {
public static void main(String[] args) {
// 创建MongoDB连接
MongoClientURI connectionString = new MongoClientURI("mongodb://localhost:27017");
MongoClient mongoClient = new MongoClient(connectionString);
// 获取数据库
MongoDatabase database = mongoClient.getDatabase("testdb");
System.out.println("成功连接到数据库: " + database.getName());
// 关闭连接
mongoClient.close();
}
}
2. 插入文档
import com.mongodb.client.MongoCollection;
import org.bson.Document;
public class InsertExample {
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("testdb");
MongoCollection<Document> collection = database.getCollection("users");
// 创建要插入的文档
Document user = new Document("name", "张三")
.append("age", 28)
.append("email", "zhangsan@example.com")
.append("interests", java.util.Arrays.asList("编程", "阅读", "运动"));
// 插入文档
collection.insertOne(user);
System.out.println("文档插入成功");
mongoClient.close();
}
}
3. 查询文档
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCursor;
public class QueryExample {
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("testdb");
MongoCollection<Document> collection = database.getCollection("users");
// 查询所有文档
FindIterable<Document> documents = collection.find();
// 遍历结果
MongoCursor<Document> cursor = documents.iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
// 条件查询
Document query = new Document("age", new Document("$gt", 25));
FindIterable<Document> filteredDocs = collection.find(query);
System.out.println("\n年龄大于25的用户:");
for (Document doc : filteredDocs) {
System.out.println(doc.toJson());
}
mongoClient.close();
}
}
4. 更新文档
public class UpdateExample {
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("testdb");
MongoCollection<Document> collection = database.getCollection("users");
// 更新条件
Document filter = new Document("name", "张三");
// 更新内容
Document update = new Document("$set", new Document("age", 29));
// 执行更新
collection.updateOne(filter, update);
System.out.println("文档更新成功");
mongoClient.close();
}
}
5. 删除文档
public class DeleteExample {
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("testdb");
MongoCollection<Document> collection = database.getCollection("users");
// 删除条件
Document filter = new Document("name", "张三");
// 执行删除
collection.deleteOne(filter);
System.out.println("文档删除成功");
mongoClient.close();
}
}
注意事项
- 版本兼容性:3.10.2 版本支持 MongoDB 服务器版本 2.6 到 4.0
- 连接池:MongoClient 是线程安全的,通常应该作为单例使用
- 性能:批量操作比单条操作更高效
- 安全:生产环境应该使用认证连接
- 新版本:建议考虑使用更新的 MongoDB Java Driver 版本(如 4.x 系列)
认证连接示例
import com.mongodb.MongoCredential;
public class AuthExample {
public static void main(String[] args) {
// 创建认证凭据
MongoCredential credential = MongoCredential.createCredential(
"username",
"admin",
"password".toCharArray());
// 创建带认证的客户端
MongoClient mongoClient = new MongoClient(
new ServerAddress("localhost", 27017),
credential,
MongoClientOptions.builder().build());
// 使用客户端...
mongoClient.close();
}
}
以上示例展示了 MongoDB Java Driver 3.10.2 的基本用法。如需更复杂的功能,可以参考官方文档或升级到更新的版本。
更多推荐
所有评论(0)