说明一:java连接mongodb官方文档:
https://docs.mongodb.com/ecosystem/drivers/java/
说明二:java连接mongodb官方创建客户端文档:
http://mongodb.github.io/mongo-java-driver/3.10/driver/tutorials/connect-to-mongodb/
说明三:java连接mongodb官方驱动选择文档:
http://mongodb.github.io/mongo-java-driver/3.10/driver/getting-started/installation/
1、java集成mongodb基础知识:
Mongodb版本是3.7以前使用MongoClient()创建客户端;
Mongodb版本是3.7以后使用 MongoClients.create()创建客户端;
Mongodb中用户是属于某个数据库的,并不是公共通用的用户。
Java集成mongodb必须的东西:
运行的mongodb数据库、mongodb驱动jar包、mongodb客户端。
Java集成mongodb的驱动jar有以下4类:
第一类:mongodb-driver-sync(推荐使用)
这种jar包,是mongodb官网在3.7版本以后推荐使用的驱动包。只需要添加这一个jar包即可。
第二类:mongodb-driver-legacy
这种jar驱动,是旧版本3.7以前的数据库创建客户端对应的驱动,在3.7以后的高版本数据库中也支持,但是3.7以高版本数据库不使用此驱动包。并且如果使用此驱动包,还需要添加依赖包:bson、mongodb-driver-core。
第三类:mongodb-driver
这种jar驱动,mongodb管网已经放弃了,并且在4.0及以后版本的数据库中将不会发布此驱动。
第四类:mongo-java-driver
这种jar驱动,mongodb管网已经放弃了,并且在4.0及以后版本的数据库中将不会发布此驱动。
2、Java驱动与mongodb版本关系表:
Java Driver Version |
MongoDB 4.0 |
MongoDB 3.6 |
MongoDB 3.4 |
MongoDB 3.2 |
MongoDB 3.0 |
MongoDB 2.6 |
Version 3.10 |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
Version 3.9 |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
Version 3.8 |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
Version 3.7 |
|
✓ |
✓ |
✓ |
✓ |
✓ |
Version 3.6 |
|
✓ |
✓ |
✓ |
✓ |
✓ |
Version 3.5 |
|
|
✓ |
✓ |
✓ |
✓ |
Version 3.4 |
|
|
✓ |
✓ |
✓ |
✓ |
Version 3.3 |
|
|
|
✓ |
✓ |
✓ |
Version 3.2 |
|
|
|
✓ |
✓ |
✓ |
Version 3.1 |
|
|
|
|
✓ |
✓ |
Version 3.0 |
|
|
|
|
✓ |
✓ |
Version 2.14 |
|
|
|
✓[*] |
✓ |
✓ |
Version 2.13 |
|
|
|
|
✓ |
✓ |
Version 2.12 |
|
|
|
|
|
✓ |
3、Java驱动与jdk版本关系表:
Java Driver Version |
Java 5 |
Java 6 |
Java 7 |
Java 8 |
Java 11 [+] |
Version 3.10 |
|
✓ |
✓ |
✓ |
✓ |
Version 3.9 |
|
✓ |
✓ |
✓ |
✓ |
Version 3.8 |
|
✓ |
✓ |
✓ |
✓ |
Version 3.4 |
|
✓ |
✓ |
✓ |
✓ |
Version 3.3 |
|
✓ |
✓ |
✓ |
✓ |
Version 3.2 |
|
✓ |
✓ |
✓ |
✓ |
Version 3.1 |
|
✓ |
✓ |
✓ |
✓ |
Version 3.0 |
|
✓ |
✓ |
✓ |
✓ |
Versions >= 2.7 |
✓ |
✓ |
✓ |
✓ |
✓ |
4、Java集成mongodb单机:
(1)legacy客户端:
A、添加jar驱动:
需要添加:mongodb-driver-legacy、bson、mongodb-driver-core三个jar包。
org.mongodb
mongodb-driver-legacy
3.10.1
org.mongodb
bson
3.10.1
org.mongodb
mongodb-driver-core
3.10.1
B、创建客户端:
/**
* 创建单机客户端
*/
public static MongoClient getStandaloneClient(){
MongoClientOptions options = MongoClientOptions.builder().sslEnabled(true).build();
MongoClient mongoClient = new MongoClient(new ServerAddress("127.0.0.1", 27017),
options);
return mongoClient;
}
(2)sync客户端(推荐使用):
A、添加jar驱动:
org.mongodb
mongodb-driver-sync
3.10.1
B、创建客户端:
/**
* 创建单机客户端
*/
public static MongoClient getStandaloneClient(){
ConnectionString connString = new ConnectionString(
"mongodb://root:[email protected]:27017/admin"
);
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(connString)
.retryWrites(true)
.build();
MongoClient mongoClient = MongoClients.create(settings);
return mongoClient;
}
5、Java集成mongodb副本集:
(1)legacy客户端:
A、添加jar驱动:
需要添加:mongodb-driver-legacy、bson、mongodb-driver-core三个jar包。
org.mongodb
mongodb-driver-legacy
3.10.1
org.mongodb
bson
3.10.1
org.mongodb
mongodb-driver-core
3.10.1
B、创建客户端:
/**
* 创建副本集客户端
*/
public static MongoClient getReplicateSetClient(){
MongoClientOptions options = MongoClientOptions.builder().sslEnabled(true).build();
MongoClient mongoClient = new MongoClient(
Arrays.asList(
new ServerAddress("127.0.0.1", 27017),
new ServerAddress("127.0.0.1", 27018),
new ServerAddress("127.0.0.1", 27019)
),
options);//此处ip和端口号为副本集群中所有主、备节点的IP和端口号,可以自动实现负载均衡、高可用
return mongoClient;
}
(2)sync客户端(推荐使用):
A、添加jar驱动:
org.mongodb
mongodb-driver-sync
3.10.1
B、创建客户端:
/**
* 创建副本集客户端
*/
public static MongoClient getReplicateSetClient(){
ConnectionString connString = new ConnectionString(
"mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/?replicaSet=lsy"
);//此处ip和端口号为副本集群中所有主、备节点的IP和端口号,可以自动实现负载均衡、高可用
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(connString)
.retryWrites(true)
.build();
MongoClient mongoClient = MongoClients.create(settings);
return mongoClient;
}
6、Java集成mongodb分片集群:
(1)legacy客户端:
A、添加jar驱动:
需要添加:mongodb-driver-legacy、bson、mongodb-driver-core三个jar包。
org.mongodb
mongodb-driver-legacy
3.10.1
org.mongodb
bson
3.10.1
org.mongodb
mongodb-driver-core
3.10.1
B、创建客户端:
/**
* 创建分片集群客户端
*/
public static MongoClient getShardedClient(){
MongoClientOptions options = MongoClientOptions.builder().sslEnabled(true).build();
MongoClient mongoClient = new MongoClient(
Arrays.asList(
new ServerAddress("127.0.0.1", 27017),
new ServerAddress("127.0.0.1", 27018),
new ServerAddress("127.0.0.1", 27019)
),
options);//此处ip和端口号为分片集群的mongos(router)路由的ip和端口号,可以自动实现负载均衡、高可用
return mongoClient;
}
(2)sync客户端(推荐使用):
A、添加jar驱动:
org.mongodb
mongodb-driver-sync
3.10.1
B、创建客户端:
/**
* 创建分片集群客户端
*/
public static MongoClient getShardedClient(){
ConnectionString connString = new ConnectionString(
"mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019"
);//此处ip和端口号为分片集群的mongos(router)路由的ip和端口号,可以自动实现负载均衡、高可用
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(connString)
.retryWrites(true)
.build();
MongoClient mongoClient = MongoClients.create(settings);
return mongoClient;
}