开发者学堂课程【SpringBoot 实战教程: SpringBoot 整合 MongoDB】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/651/detail/10815
SpringBoot 整合 MongoDB
内容介绍:
一、介绍
二、操作
一、介绍
1、MongoDB 是一个基于分布式文件存储的数据库。由 C++语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB 属于文档型数据库,他支持的数据结构非常松散是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
2、redis 是以键值对的形式存储的,不管是什么类型的都需要转成字符串进行存储。
二、操作
如何在 springboot 中使用 MongoDB?
1、MongoDB可以在线安装,在linux中安装,安装后进行启动,如果要在springboot集成MongoDB,首先要做架包依赖,以下是 springboot提供的MongoDB 的依赖,把它放进工程中。工程是 springboot 集成 mybatis 的案例,在这个基础之上加入缓存的使用。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2、MongoDB 是在另外一台服务器上,指明 MongoDB 的 IP 地址,还有相应的端口号,这些需要在全局配置文件中进行配置。
配置:
spring:
datasource :
driver-class-name: com . mysql . jdbc .Driver
username :root
password :root
url: jdbc :mysql: / /localhost: 3306/db1
data:
mongodb:
host:192.168.25.130
IP 地址
port:27017
MongoDB 默认端口号
database:mydb
使用的数据库
3、如何使用 MongoDB 存数据或取数据?
service 中一共有两个功能,一个是添加用户,一个是根据姓名查找用户,操作的是 mysql 数据库。
@Override
public Users findUserByName (String name)
{
Return
usersMapper . findByName (name) ;
@Override
public void addUser (Users user)
{
usersMapper . save (user .getName () , user .getPassword() ) ;
}
在 controller 中,使用 MongoDB,springboot 在启动时已经做了自动配置。
@Autowired 直接注入
private MongoTemplate mongoTemplate
;
提供了 MongoDB 模版,使用模版向 MongoDB 中存数据或取数据
@Reques tMapping ("/ findUse rByName")
@ResponseBody
public Users
findUserByName (String name)
{
return userService. findUse rByName (name) ;
}
@RequestMapping ("/ addUser")
@ResponseBody
public String addUser (Users user)
向数据库中添加用户。把以下用户添加到 MongoDB 中,如果存储到 MongoDB 中,ID 需要指定值,MongoDB 可以直接存储对象,直接把 users 对象传过来即可,这样这个对象就以 bson 的格式存储在 MongoDB 中。
Users
u=new
Users () ;
u. setId(123)
;
u. setName ("欧耶") ;
u. setPassword("666888") ;
u. setEmail ("cg@163. com") ;
u. setBi rthday (new Date () ) ;
//
userService . addUser (user) ;
mongoTemplate.save(u) ;
return" success" ;
}
再将 MongoDB 中的对象取出,再添加一个功能.
@RequestMapping("/ list")
@ResponseBody
Public
List<Users> findUsers ()
{
Return
mongoTemplate. findAll (Users.class) ;
利用模版进行取出,只需要指定找的对象的字节码类型即可,它返回的就是list的集合
}
}
4、进行启动,先在 MongoDB 中存储一个用户,叫欧耶,再从里面取出,首先访问 adduser,再访问 list。
5、输入localhost:8080/addUser
。添加成功。
Findall,只要是 users 类型的都可以取出,如果向 MongoDB 中存储过 users 类型,也可以取出。输入localhost:8080/list
。取出了两个。在 springboot 中集成 MongoDB 比较简单。