集成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操作系统进行讲解,具体安装步骤如下:

  1. 官方网站https://www.mongodb.com/download-center#community下根据自己的电脑操作系统的位数,下载对应的安装包,具体如图所示。


MongoDB高级实战pdf 下载 mongodb实战第二版_数据库


  1. 双击下载的安装包,进行安装。这里笔者安装在C盘。
  2. 找到安装目录的bin路径,将其配置在Window的环境变量path中,如C:\Program Files\MongoDB\Server\3.4\bin。
  3. 创建一个保存数据库的目录,如C:\mongodb\data,然后打开一个命令窗口,输入命令:mongod–dbpath=c:\mongodb\data,启动MongoDB服务。
  4. 安装成功之后,可以在命令行看到如图13-2所示的信息,代表MongoDB安装成功。


MongoDB高级实战pdf 下载 mongodb实战第二版_MongoDB高级实战pdf 下载_02


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高级实战pdf 下载 mongodb实战第二版_MongoDB高级实战pdf 下载_03


从图中可以看出,MongoDB数据库安装完成之后,默认创建了3个数据库,分别为admin、local、test。单击test数据库,然后单击菜单栏的shell按钮,可以打开shell窗口,在shell窗口中,可以编写相关的SQL语句,具体如图所示。



MongoDB高级实战pdf 下载 mongodb实战第二版_spring boot_04


在shell菜单中输入SQL语句:show dbs,单击执行按钮,可以在Result结果界面看到SQL语句执行的结果,如图所示。



MongoDB高级实战pdf 下载 mongodb实战第二版_java_05


还可以在shell窗口中编写如下的命令练习MongoDB的一些SQL语法,具体命令如下:



MongoDB高级实战pdf 下载 mongodb实战第二版_java_06


上面的命令只是一个简单的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"}