【笔记】SpringBoot项目整合MongoDB

前言

SpringBoot项目整合MongoDB

引入依赖

pom.xml
1
2
3
4
5
6
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>

添加配置

<database_name>:指定数据库名称
<username>:用户名,如果启动MongoDB服务时没有开启认证可以省略
<password>:密码,如果启动MongoDB服务时没有开启认证可以省略

src/main/resources/application.yml
1
2
3
4
5
6
7
8
spring:
data:
mongodb:
host: 127.0.0.1
database: <database_name>
port: 27017
username: <username>
password: <password>
1
2
3
4
spring:
data:
mongodb:
uri: mongodb://<username>:<password>@127.0.0.1:27017/<database_name>

创建实体类

@Document(collection=""):定义集合名,如果实体类名全小写后与集合名相同,可以省略注解
@Id:定义主键
@Field(""):定义字段名,如果属性名与字段名相同,可以省略注解
@Indexed:定义单字段索引
@CompoundIndex():定义复合索引

src/main/java/com/pojo/User.java
1
2
3
4
5
6
7
8
9
10
11
12
@Document(collection="user")
@CompoundIndex(def="{'mathScore': 1, 'englishScore': -1}")
public class User implements Serializable {
@Id
private String id;
@Field("name")
private String name;
@Indexed
private Integer chineseScore;
private Integer mathScore;
private Integer englishScore;
}

创建Dao

User:泛型的第一个参数是实体类
String:泛型的第二个参数是主键的数据类型

src/main/java/com/dao/UserDao.Java
1
2
public interface UserDao extends MongoRespository<User, String> {
}

创建Service

src/main/java/com/service/UserService.java
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
36
37
38
39
40
41
public class UserService {

@Autowried
private UserDao userDao;

/**
* 新增
*/
public void saveUser(User user) {
userDao.save(user);
}

/**
* 通过Id删除
*/
public void deleteUser(String id) {
userDao.deleteById(id);
}

/**
* 修改
*/
public void updateUser(User user) {
userDao.save(user);
}

/**
* 查询所有
*/
public void saveUser() {
userDao.findAll();
}

/**
* 通过Id查询
*/
public void saveUser(String id) {
userDao.findById(id).get();
}

}

完成

参考文献

哔哩哔哩——黑马程序员