0%

SpringBoot-整合mongoDB

前言

MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

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

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

  • MongoDB是一个独立的服务器。
  • 它是基于文档的,而不是基于表格的。
  • 它是非结构化的。
  • 它具有强大的主流开发语言支持,如C#、C++、Java、PHP、Perl、Python、Ruby。
  • 可扩展性。
  • 使用高效的二进制数据存储,包括大型对象(如视频等)。
  • 支持完全索引,包含内部对象。
  • 面向集合存储,易存储对象类型的数据。

mongoDB 安装

具体安装过程可参考MongoDB安装

pom.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

配置文件

这里配置mongoDB的地址和数据库信息。

1
2
3
4
5
6
spring:
data:
mongodb:
host: 127.0.0.1
port: 27017
database: test

实体类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class User {
private long id;
private String username;
private String password;

public User(long id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}

数据操作层

接口继承MongoRepository

1
2
public interface UserRepository extends MongoRepository<User, Long> {
}

controller类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@RestController
public class UserController {

@Autowired
private UserRepository userRepository;

@GetMapping("save")
public String save() {
User user = new User(System.currentTimeMillis(), "用户" + System.currentTimeMillis(), "123");
userRepository.save(user);
return "success";
}


@GetMapping("getUserList")
public List<User> getUserList() {
List<User> userList = userRepository.findAll();
return userList;
}

@GetMapping("delete")
public String delete(Long id) {
userRepository.deleteById(id);
return "success";
}

@GetMapping("update")
public String update(Long id, String username, String password) {
User user = new User(id, username, password);
userRepository.save(user);
return "success";
}
}

测试

  • 访问save方法,并查看数据。
    use test:使用test数据库。
    db.user.find(): 查看user文档。
    image.png

欢迎关注我的其它发布渠道