集成MongoDB数据库
- 1.MongoDB数据库介绍
- 1.1 MongoDB的安装
- 1.2 NoSQL Manager for MongoDB客户端的使用
- 2.集成MongoDB
- 2.1 引入依赖
- 2.2 添加MongoDB配置
- 2.3 连接MongoDB
- 2.4 测试
本章主要介绍如何安装和使用MongoDB数据库、NoSQL Manager for MongoDB客户端安装与使用以及在Spring Boot中集成MongoDB数据库开发简单的功能等内容。
1.MongoDB数据库介绍
1.1 MongoDB的安装
MongoDB是一个高性能、开源、无模式的文档型数据库,是当前NoSQL数据库中比较热门的一种,在企业中被广泛使用。其主要功能特性有:面向集合存储、易存储对象类型的数据、支持动态查询、文件存储格式为BSON(一种JSON的扩展)、支持复制和故障恢复等。MongoDB非常适合实时地插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。由于性能很高,MongoDB也适合作为信息基础设施的缓存层。在系统重启之后,由MongoDB搭建的持久化缓存层可以避免下层的数据源过载。由于高伸缩性,MongoDB也非常适合由数十或数百台服务器组成的数据库。MongoDB的路线图中已经包含对MapReduce引擎的内置支持,用于对象及JSON数据的存储方式,MongoDB的BSON数据格式非常适合文档化格式的存储及查询。MongoDB有很多优点,但缺点也是明显的,比如不能建立实体关系、没有事务管理机制等。
MongoDB提供有Windows、Linux、Mac OS X、Solaris等操作系统的安装包,本书主要针对Windows操作系统进行讲解,具体安装步骤如下:
- 在官方网站https://www.mongodb.com/download-center#community下根据自己的电脑操作系统的位数,下载对应的安装包,具体如图所示。
- 双击下载的安装包,进行安装。这里笔者安装在C盘。
- 找到安装目录的bin路径,将其配置在Window的环境变量path中,如C:\Program Files\MongoDB\Server\3.4\bin。
- 创建一个保存数据库的目录,如C:\mongodb\data,然后打开一个命令窗口,输入命令:mongod–dbpath=c:\mongodb\data,启动MongoDB服务。
- 安装成功之后,可以在命令行看到如图13-2所示的信息,代表MongoDB安装成功。
1.2 NoSQL Manager for MongoDB客户端的使用
连接MongoDB数据库的方式很多,除了可以使用最原始的命令窗口,还可以使用功能强大的NoSQL Manager for MongoDB客户端来连接MongoDB数据库。NoSQLManager for MongoDB客户端安装包可以到官方网站https://www.mongodbmanager.com/download下载。下载完成后按照正常的程序一步一步安装即可。
NoSQL Manager for MongoDB客户端安装完成之后,在MongoDB数据库已启动的情况下,我们打开NoSQL Manager for MongoDB客户端,界面如图所示。
从图中可以看出,MongoDB数据库安装完成之后,默认创建了3个数据库,分别为admin、local、test。单击test数据库,然后单击菜单栏的shell按钮,可以打开shell窗口,在shell窗口中,可以编写相关的SQL语句,具体如图所示。
在shell菜单中输入SQL语句:show dbs,单击执行按钮,可以在Result结果界面看到SQL语句执行的结果,如图所示。
还可以在shell窗口中编写如下的命令练习MongoDB的一些SQL语法,具体命令如下:
上面的命令只是一个简单的SQL语句练习,更多关于MongoDB的SQL语句练习,读者可到网上查阅相关资料学习。
2.集成MongoDB
2.1 引入依赖
在Spring Boot中集成MongoDB,首先需要在pom.xml文件中引入所需的依赖,具体代码如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2.2 添加MongoDB配置
在pom文件引入MongoDB所需的依赖之后,需要在application.properties文件中添加如下的配置信息:
###MongoDB配置
###host地址
spring.data.mongodb.host=localhost
###默认数据库端口27017
spring.data.mongodb.port=27017
###连接数据库名test
spring.data.mongodb.database=test
2.3 连接MongoDB
首先,在my-spring-loot-v2项目目录/src/main/java/com.example.demo.model下新建用户附件类AyUserAttachmentRel,具体代码如下:
public class AyUserAttachmentRel {
/**
* 用户头像关联表
*/
@Id
private String id;
private String userId;
private String fileName;
}
用户附件类AyUserAttachmentRel开发完成之后,开发AyUserAttachmentRelRepository类,该类继承MongoRepository类,MongoRepository类在spring-data-mongodb包下,类似于第3章的Spring DataJPA。追溯MongoRepository源代码可以看出,MongoRepository最顶级的父类就是Repository接口。AyUserAttachmentRelRepository类的具体代码如下:
public interface AyUserAttachmentRelService{
AyUserAttachmentRel save(AyUserAttachmentRel ayUserAttachmentRel);
}
接口AyUserAttachmentRelService类开发完成之后,接下来开发其对应的实现类AyUserAttachmentRelServiceImpl,在AyUserAttachmentRelServiceImpl中实现接口层方法save,注入AyUserAttachmentRelRepository类,并调用AyUserAttachmentRelRepository的save方法将数据保存到MongoDB数据库中。具体代码如下:
@Service
public class AyUserAttachmentRelServiceImpl implements AyUserAttachmentRelService {
@Resource
private AyUserAttachmentRelRepository ayUserAttachmentRelRepository;
public AyUserAttachmentRel save(AyUserAttachmentRel ayUserAttachmentRel) {
return ayUserAttachmentRelRepository.save(ayUserAttachmentRel);
}
}
2.4 测试
所有代码开发完成之后,在测试类MySpringBootApplicationTests下添加测试方法testMongoDB,在方法中创建AyUserAttachmentRel实体,并调用ayUserAttachmentRelService类中的save方法,将数据存储到MongoDB中,具体代码如下:
@Resource
private AyUserAttachmentRelService ayUserAttachmentRelService;
@Test
public void testMongoDB (){
AyUserAttachmentRel ayUserAttachmentRel= new ayUserAttachmentRel();
ayUserAttachmentRel.setId("1");
ayUserAttachmentRel.setUserId("1");
ayUserAttachmentRel.setFileName("个人简历.doc");
ayUserAttachmentRelService.save(ayUserAttachmentRel);
System.out.printIn("保存成功");
}
运行测试方法testMongoDB,运行前记得启动MongoDB数据库,测试方法运行成功之后,我们可以在MongoDB数据库查询到数据。具体查询的SQL语句如下:
use test;
db.ayUserImageRel.find();
查询结果:
{"_id":"1","_class":"com.example.demo.model.AyUserImageRel","userId":"1","FileName":"个人简历,doc"}