快速上手
MongoPlus以第三方组件的形式引入到您的项目中。
我们将通过一个简单的 Demo 来阐述 Mongo-Plus 的强大功能,在此之前,我们假设您已经:
- 拥有 Java 开发环境以及相应 IDE
- 熟悉 Spring Boot
- 熟悉 Maven
现有一个 User
集合,其结构如下:
id | name | age | |
---|---|---|---|
1 | Jone | 18 | test1@163.com |
2 | Jack | 20 | test2@163.com |
3 | Tom | 28 | test3@163.com |
4 | Sandy | 21 | test4@163.com |
5 | Billie | 24 | test5@163.com |
Question
如果从零开始用 Mongo-Plus 来实现该表的增删改查我们需要做什么呢?
初始化工程
创建一个空的 Spring Boot 工程
TIP
可以使用 Spring Initializer 快速初始化一个 Spring Boot 工程
添加依赖
引入 Spring Boot Starter 父工程:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6+ 版本</version>
<relativePath/>
</parent>
引入 spring-boot-starter
、spring-boot-starter-test
、mongo-plus-boot-starter
依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.gitee.anwena</groupId>
<artifactId>mongo-plus-boot-starter</artifactId>
<version>最新版本</version>
</dependency>
</dependencies>
配置
在 application.yml
配置文件中添加 MongoPlus 相关配置:
# DataSource Config
mongo-plus:
data:
mongodb:
host: 127.0.0.1 #ip
port: 27017 #端口
database: test #数据库名
username: test #用户名,没有可不填(若账号中出现@,!等等符号,不需要再进行转码!!!)
password: test #密码,同上(若密码中出现@,!等等符号,不需要再进行转码!!!)
authenticationDatabase: admin #验证数据库
connectTimeoutMS: 50000 #在超时之前等待连接打开的最长时间(以毫秒为单位)
SpringBoot低版本,如2.1、2.2等,需要做一些额外的操作
pom文件: SpringBoot控制了MongoDB驱动的版本,所以需要进行排除,然后重新引入
<dependency>
<groupId>com.gitee.anwena</groupId>
<artifactId>mongo-plus-boot-starter</artifactId>
<version>最新版本</version>
<exclusions>
<exclusion>
<artifactId>bson</artifactId>
<groupId>org.mongodb</groupId>
</exclusion>
<exclusion>
<artifactId>mongodb-driver-core</artifactId>
<groupId>org.mongodb</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>4.9.0</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-core</artifactId>
<version>4.9.0</version>
</dependency>
启动类: 为了适配MongoTemplate,OverrideMongoConfiguration做了一些配置,但是和低版本的并不兼容,所以只需将OverrideMongoConfiguration排除即可
//排除OverrideMongoConfiguration配置类
@SpringBootApplication(exclude = OverrideMongoConfiguration.class)
// 如报错相关类为:MongoPropertyConfiguration.class,则需要将MongoPropertyConfiguration也一并排除
//@SpringBootApplication(exclude = {OverrideMongoConfiguration.class, MongoPropertyConfiguration.class})
public class MongoPlusDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MongoPlusDemoApplication.class, args);
}
}
编码
编写实体类 User.java
(此处使用了 Lombok 简化代码)
TIP
此处介绍通过实体类方式
@Data
public class User {
@ID //使用ID注解,标注此字段为MongoDB的_id,或者继承BaseModelID类
private String id;
private String name;
private Long age;
private String email;
}
编写Service下的UserService和实现类UserServiceImpl,像MyBatisPlus一样
public interface UserService extends IService<User> {
}
public class UserServiceImpl extends ServiceImpl<User> implements UserService {
}
开始使用
添加测试类,进行功能测试:
@SpringBootTest
public class SampleTest {
@Autowired
private UserService userService;
@Test
public void testSelect() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userService.list();
userList.forEach(System.out::println);
}
}
控制台输出:
User(id=1, name=Jone, age=18, email=test1@baomidou.com)
User(id=2, name=Jack, age=20, email=test2@baomidou.com)
User(id=3, name=Tom, age=28, email=test3@baomidou.com)
User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
User(id=5, name=Billie, age=24, email=test5@baomidou.com)
TIP
完整的代码示例请移步:Spring Boot 示例
小结
通过以上几个简单的步骤,我们就实现了 User 表的 CRUD 功能!
从以上步骤中,我们可以看到集成Mongo-Plus
非常的简单,只需要引入 starter 工程即可。
但 Mongo-Plus 的强大远不止这些功能,想要详细了解 Mongo-Plus 的强大功能?那就继续往下看吧!