- mongodb-driver mongodb-driver 是mongodb 官方推出的Java连接MongoDB的驱动包,相当于JDBC驱动。 该包操作mongodb非常的不友好,这里只提一下有这个技术,感兴趣的可以自己看菜鸟教程学习一下。
- SpringDataMongoDB SpringDataMongoDB是SpringData家族成员之一,吊炸天的MongoDB持久层框架,底层封装了mongodb-driver。
下面使用 mongodb-driver来操作MongoDB。 创建一个 maven工程, 引入 mongodb-driver依赖。
org.mongodb
mongo-java-driver
3.12.7
一、连接MongoDB
1、连接MongoDB服务
1.1 不通过认证连接MongoDB服务
MongoClient mongoClient = new MongoClient(“localhost”, 27017);
- “localhost” 表示连接的服务器地址,
- 默认端口号为 27017,可以省略 。
List adds = new ArrayList();
// ServerAddress()两个参数分别为 服务器地址 和 端口
ServerAddress serverAddress = new ServerAddress("localhost", 27017);
adds.add(serverAddress);
List credentials = new ArrayList();
// MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());
credentials.add(mongoCredential);
// 通过连接认证获取MongoDB连接
MongoClient mongoClient = new MongoClient(adds, credentials);
1.3 将连接信息封装成工具类
新建 MongoDBUtil类。通过安全认证连接 MongoDB服务。
import com.mongodb.*;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import org.bson.Document;
import java.util.ArrayList;
import java.util.List;
public class MongoDBUtil {
private static MongoClient mongoClient;
static {
System.out.println("===============MongoDBUtil初始化========================");
List adds = new ArrayList();
//ServerAddress()两个参数分别为 服务器地址 和 端口
ServerAddress serverAddress = new ServerAddress("localhost", 27017);
adds.add(serverAddress);
List credentials = new ArrayList();
//MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());
credentials.add(mongoCredential);
//通过连接认证获取MongoDB连接
mongoClient = new MongoClient(adds, credentials);
System.out.println("==========Connect to MongoDB successfully================");
}
public static MongoClient getMongoClient() {
return mongoClient;
}
}
2、 数据库操作
2.1 获取所有数据库
@Test
public void testGetDBS() {
MongoIterable dbNames = MongoDBUtil.getMongoClient().listDatabaseNames();
for (String db : dbNames) {
System.out.println(db);
}
}
@Test
public void testGetDB() {
MongoDatabase db3 = MongoDBUtil.getMongoClient().getDatabase("m_db3");
System.out.println(db3); //com.mongodb.client.internal.MongoDatabaseImpl@1d9b7cce
}
3、获取数据库中的集合
3.1 获取某数据库中的所有集合
@Test
public void testGetDBAllCollection() {
MongoDatabase db1 = MongoDBUtil.getMongoClient().getDatabase("m_db1");
MongoIterable collNames = db1.listCollectionNames();
for (String collName : collNames) {
System.out.println(collName);
}
}
@Test
public void testGetCollection() {
MongoDatabase db1 = MongoDBUtil.getMongoClient().getDatabase("m_db1");
MongoCollection coll3 = db1.getCollection("coll3");
System.out.println(coll3.countDocuments()); //7
}
3.3 创建集合
db1.createCollection(“coll4”);
二、对数据库进行CRUD 1、插入操作 1.1 插入一个文档 @Test
public void test() {
// 创建一个数据库
MongoDatabase db3 = MongoDBUtil.getMongoClient().getDatabase("m_db3");
// 创建一个集合,获取该集合
db3.createCollection("coll1");
MongoCollection coll1 = db3.getCollection("coll1");
// 创建文档
Map map = new HashMap();
map.put("_id", "11");
map.put("name", "zhaoyun");
map.put("age", 18);
map.put("sex", 1);
Document document = new Document(map);
//向集合中插入文档
coll1.insertOne(document);
System.out.println(coll1.countDocuments()); //1
}
1.2 插入多个文档
@Test
public void test() {
MongoDatabase db3 = MongoDBUtil.getMongoClient().getDatabase("m_db3");
MongoCollection coll1 = db3.getCollection("coll1");
//要插入的文档
List documents = new ArrayList();
for(int i = 2; i {_id=22, name=luna2, age=12, sex=0}}
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?