网站首页 > java教程 正文
上一篇主要讲了MongoDB数据的介绍,还有MongoDB数据库的安装和配置。经常有项目中会需要连接MongoDB数据库并操作数据库进行增删改查,本文主要讲在Java中怎么操作MongoDB数据库进行增删改查。
Java操作MongoDB
1)Java操作MongoDB需要第三方驱动程序,Maven项目可以在pom.xml文件加入依赖
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.4</version>
</dependency>
2)非Maven项目可以下载驱动程序jar包,导入项目buildBath路径。
代码实现
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.Document;
import org.bson.conversions.Bson;
import java.util.ArrayList;
import java.util.List;
public class MongoUtil {
//不通过认证获取连接数据库对象
public static MongoDatabase getConnect() {
//连接到 mongodb 服务
MongoClient mongoClient = new MongoClient("localhost", 27017);
//连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
//返回连接数据库对象
return mongoDatabase;
}
//需要密码认证方式连接
public static MongoDatabase getConnect2() {
List<ServerAddress> adds = new ArrayList<>();
//ServerAddress()两个参数分别为 服务器地址 和 端口
ServerAddress serverAddress = new ServerAddress("localhost", 27017);
adds.add(serverAddress);
List<MongoCredential> credentials = new ArrayList<>();
//MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());
credentials.add(mongoCredential);
//通过连接认证获取MongoDB连接
MongoClient mongoClient = new MongoClient(adds, credentials);
//连接到数据库
MongoDatabase mongoDatabase =
mongoClient.getDatabase("test");
//返回连接数据库对象
return mongoDatabase;
}
/**
* 插入一个文档
*/
public void insertOne() {
//获取数据库连接对象
MongoDatabase mongoDatabase = MongoUtil.getConnect();
//获取集合
MongoCollection<org.bson.Document> collection = mongoDatabase.getCollection("user");
//要插入的数据
Document document = new Document("name", "张三").append("sex", "男").append("age", 18);
//插入一个文档
collection.insertOne(document);
}
/**
* 插入多个文档
*/
public void insertMany() {
//获取数据库连接对象
MongoDatabase mongoDatabase = MongoUtil.getConnect();
//获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection("user");
//要插入的数据
List<Document> list = new ArrayList<>();
for (int i = 1; i <= 3; i++) {
Document document = new Document("name", "张三").append("sex", "男").append("age", 18);
list.add(document);
}
//插入多个文档
collection.insertMany(list);
}
/**
* 删除一个文档
*/
public void deleteOne() {
//获取数据库连接对象
MongoDatabase mongoDatabase = MongoUtil.getConnect();
//获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection("user");
//申明删除条件
Bson filter = Filters.eq("age", 18);
//删除与筛选器匹配的单个文档
collection.deleteOne(filter);
}
/**
* 删除多个文档
*/
public void deleteMany() {
//获取数据库连接对象
MongoDatabase mongoDatabase = MongoUtil.getConnect();
//获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection("user");
//申明删除条件
Bson filter = Filters.eq("age", 18);
//删除与筛选器匹配的所有文档
collection.deleteMany(filter);
}
/**
* 修改一个文档
*/
public void updateOne() {
//获取数据库连接对象
MongoDatabase mongoDatabase = MongoUtil.getConnect();
//获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection("user");
//修改过滤器
Bson filter = Filters.eq("name", "张三");
//指定修改的更新文档
Document document = new Document("$set", new Document("age", 100));
//修改单个文档
collection.updateOne(filter, document);
}
/**
* 修改多个文档
*/
public void updateMany() {
//获取数据库连接对象
MongoDatabase mongoDatabase = MongoUtil.getConnect();
//获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection("user");
//修改过滤器
Bson filter = Filters.eq("name", "张三");
//指定修改的更新文档
Document document = new Document("$set", new Document("age", 100));
//修改多个文档
collection.updateMany(filter, document);
}
/**
* 查询所有文档
*/
public void find() {
//获取数据库连接对象
MongoDatabase mongoDatabase = MongoUtil.getConnect();
//获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection("user");
//查找集合中的所有文档
FindIterable findIterable = collection.find();
MongoCursor cursor = findIterable.iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
}
/**
* 通过过滤器查询
*/
public void Filterfind() {
//获取数据库连接对象
MongoDatabase mongoDatabase = MongoUtil.getConnect();
//获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection("user");
//指定查询过滤器
Bson filter = Filters.eq("name", "张三");
//指定查询过滤器查询
FindIterable findIterable = collection.find(filter);
MongoCursor cursor = findIterable.iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
}
/**
* 查询第一个文件
*/
public void findfirst() {
//获取数据库连接对象
MongoDatabase mongoDatabase = MongoUtil.getConnect();
//获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection("user");
//查找集合中的所有文档
FindIterable findIterable = collection.find();
//取出查询到的第一个文档
Document document = (Document) findIterable.first();
//打印输出
System.out.println(document);
}
}
猜你喜欢
- 2025-06-10 XML简介(XML简介)
- 2025-06-10 MyBatis3源码解析-执行SQL流程(mybatisplus源码分析)
- 2025-06-10 xml 配置文件规范 校验(xml配置文件怎么写)
- 2025-06-10 SpringBoot-19-Mybatis的xml配置方式
- 2025-06-10 Java老司机竟然连 Tomcat 都启动不起来?
- 2025-06-10 SpringBoot之数据访问——访问SQL数据库!
- 2025-06-10 SpringBoot 系列教程 Mybatis+xml 整合篇
- 2025-06-10 MyCat系列二--配置文件之server.xml
- 2025-06-10 Mybatis配置文件XML全貌详解,再不懂我也没招了
- 2025-06-10 Java api 远程访问 HDFS HA 通用写法总结
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)