0%

Spring Boot 整合 MongoDB

MongoDB简介

MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新。与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB能够使企业更加具有敏捷性和可扩展性,各种规模的企业都可以通过使用MongoDB来创建新的应用,提高与客户之间的工作效率,加快产品上市时间,以及降低企业成本。

MongoDB是专为可扩展性,高性能和高可用性而设计的数据库。它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB能够提供高性能的数据读写操作。 MongoDB的本地复制和自动故障转移功能使您的应用程序具有企业级的可靠性和操作灵活性。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。

MongoDB中的一条记录就是一个文档,是一个数据结构,由字段和值对组成。MongoDB文档与JSON对象类似。字段的值有可能包括其它文档、数组以及文档数组。MongoDB支持OS X、Linux及Windows等操作系统,并提供了Python,PHP,Ruby,Java及C++语言的驱动程序,社区中也提供了对Erlang及.NET等平台的驱动程序。

MongoDB的适合对大量或者无固定格式的数据进行存储,比如:日志、缓存等。对事物支持较弱,不适用复杂的多文档(多表)的级联查询。文中演示mongodb版本为3.4

MongoDB安装

对于MongoDB的安装,可以选择官网下载,也可以通过docker安装等。个人感觉直接从docker上面拉取镜像,启动比较方便。

1
2
3
4
docker search mongodb
docker pull <镜像>
docker images
docker run -p 27017:27017 -td <镜像>

进入MongoDB控制台:

1
docker exec -it 25d9e7028145(镜像ID) mongo admin(数据库)

对于如何添加管理员用户,Docker部署安装MongoDB,这篇博客上面介绍了了。

Spring Boot + MongoDB

添加jar

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

添加连接数据库信息

对于上面这种直接连接数据库的操作,本人是没有连接成功,从提示错误中看到,虽然连接信息是服务器上面的,但是报错一直提示本地MongoDB连接不上,最后选择了配置数据库连接。如下图所示:

创建实体类

创建Repository

总结

在测试类中测试,最后在数据库中有数据插入。选择spring-boot-starter-data-mongodb这个jar,已经支持对 MongoDB的增删改查的基本数据库操作。
对于MongoDB来说,如果没有相对于的数据库,则会创建数据库;如果没有表的话,则会创建新的表。这不像MySQL一样,需要自己先手动创建相应的数据库和表。

客官,赏一杯coffee嘛~~~~