本节将讲解 MongoDB 在 Java 中的使用,实践性比较强。因此,写个demo比较直观。直接上代码, mongodb -demo.git
1、先创建一个springboot项目。
2、引入需要 jar ,驱动包等
<!-- mongodb 的驱动 -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.10.1</version>
</dependency>
<!-- 以下是 spring 管理的mongodb -->
<!-- -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
3、MongoClient 直接创建客户端连接
@Before
public void init() {
client = new MongoClient("192.168.12.179", 27017);
}
/**
* @Description: 获取或新增数据库, 如果是新增,则在创建后,通过show dbs是看不到的,需要添加collection才能看到
* @author:
* @Datetime: 2021/1/6 14:19
*/@Test
public void connectDB() {
// 连接数据库,你需要指定数据库名称,如果指定的数据库不存在,mongo会自动创建数据库。
MongoDatabase database = client.getDatabase("yzfile");
System.out.println("connect successful----" + database.getName());
}
4、创建与查询集合操作
@Test
public void createCollection() {
MongoDatabase database = client.getDatabase("yzfile");
database.createCollection("mycollection");
System.out.println("集合创建成功");
}
@Test
public void getCollection() {
MongoDatabase database = client.getDatabase("yzfile");
MongoCollection<Document> collection = database.getCollection("mycollection");
System.out.println("获取集合成功:" + collection.getNamespace());
MongoIterable<String> collectionNames = database.listCollectionNames();
for (String string : collectionNames) {
System.out.println("collection name : " + string);
}
}
5、由springboot 来管理,首先创建配置文件
mongodb.properties
mongo.host=192.168.12.179
mongo.port=27017
mongo.connectionsPerHost=8
mongo.threadsAllowedToBlockForConnectionMultiplier=4
#连接超时时间
mongo.connectTimeout=1000
#等待时间
mongo.maxWaitTime=1500
mongo.autoConnectRetry=true
mongo. socket KeepAlive=true
#socket超时时间
mongo.socketTimeout=1500
mongo.slaveOK=true
mongo.writeconcern=safe
spring-mongodb.xml
<!-- 加载mongodb的配置属性文件 -->
<context:property-placeholder location="classpath:mongodb.properties"/>
<!-- 扫描持久层 -->
<context:component-scan base-package="com.santy.mongodb.springdata"/>
<!-- 配置mongodb客户端连接服务器的相关信息 -->
<mongo:mongo-client host="${mongo.host}" port="${mongo.port}" id="mongo">
<mongo:client-options
write-concern="${mongo.writeconcern}"
connect-timeout="${mongo.connectTimeout}"
socket-keep-alive="${mongo.socketKeepAlive}"/>
</mongo:mongo-client>
<!-- mongo:db-factory dbname="database" mongo-ref="mongo" / -->
<mongo:db-factory id="mongoDbFactory" dbname="yzfile" mongo-ref="mongo"/>
<!-- 配置mongodb的模板类:MongoTemplate -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
</bean>
6、spring-data-mongdb 使用跟操作普通数据库类型,都需要创建相应的实体层、数据持久层、业务逻辑层等。因为类似,就不一一列举,直接看代码。