Skip to content
广告❤️成为赞助商

快速上手

MongoPlus以第三方组件的形式引入到您的项目中。

我们将通过一个简单的 Demo 来阐述 Mongo-Plus 的强大功能,在此之前,我们假设您已经:

  • 拥有 Java 开发环境以及相应 IDE
  • 熟悉 Spring Boot
  • 熟悉 Maven

现有一个 User 集合,其结构如下:

idnameageemail
1Jone18test1@163.com
2Jack20test2@163.com
3Tom28test3@163.com
4Sandy21test4@163.com
5Billie24test5@163.com

Question

如果从零开始用 Mongo-Plus 来实现该表的增删改查我们需要做什么呢?

初始化工程

创建一个空的 Spring Boot 工程

TIP

可以使用 Spring Initializer 快速初始化一个 Spring Boot 工程

添加依赖

引入 Spring Boot Starter 父工程:

xml
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6+ 版本</version>
    <relativePath/>
</parent>

引入 spring-boot-starterspring-boot-starter-testmongo-plus-boot-starte 依赖:

xml
<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 相关配置:

yaml
# 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驱动的版本,所以需要进行排除,然后重新引入

xml
<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排除即可

java
//排除OverrideMongoConfiguration配置类
@SpringBootApplication(exclude = OverrideMongoConfiguration.class)
public class MongoPlusDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MongoPlusDemoApplication.class, args);
    }

}

编码

编写实体类 User.java(此处使用了 Lombok 简化代码)

TIP

此处介绍通过实体类方式

java
@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一样

java

public interface MongoService extends IService<User> {
        
}
java

public class MongoServiceImpl extends ServiceImpl<User> implements MongoService {
    
}

开始使用

添加测试类,进行功能测试:

java
@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);
    }

}

控制台输出:

log
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 的强大功能?那就继续往下看吧!