SpringBoot集成MongoDB

SpringBoot集成MongoDB

Demo 项目下载地址https://github.com/GithubMcx/SpringBoot_More


环境配置
IDEA /JDK1.8 /Maven3.3.9以上

0.新建Maven项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.POM文件配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.com.demo</groupId>
    <artifactId>spring-boot-mongo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

        <!--这个就是集成Mongo的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>

        <!-- 实体类插件 省去写get set方法 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
</project>

2.application.yml

在resources目录下新建一个名为【application.yml】的文件,将配置写入

# 这个是交由Spring管理的
spring:
  data:
    mongodb:
      host: 172.30.23.213    #mongo服务IP
      port: 27017            #mongo服务端口号
      database: dbdemo       #mongo数据库名

3.项目启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@SpringBootApplication
@ServletComponentScan
public class MongoApplication {

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

4.Model实体类

import lombok.Data;
import org.springframework.data.annotation.Id;
import java.io.Serializable;

@Data
public class User implements Serializable {

    private static final long serialVersionUID = -1L;

    @Id
    private Long id;
    private String username;
    private Integer age;

    public User(Long id, String username, Integer age) {
        this.id = id;
        this.username = username;
        this.age = age;
    }
}

5.Repository类

相当于Mysql的Dao层,此文主要是做整合讲解,具体详细用法请参考讲解

import cn.com.demo.springboot.mongo.model.User;
import org.springframework.data.mongodb.repository.MongoRepository;
import java.util.List;

public interface UserRepository extends MongoRepository<User, Long> {

    /**
     * Like(模糊查询)
     * {"username" : name} ( name as regex)
     * */
    List<User> findByUsernameLike(String username);

    /**
     * Like(模糊查询)
     * {"username" : name}
     * */
    List<User> findByUsername(String username);

}

6.Mongo测试类

直接调用repository层进行Mongo数据操作,正常的业务需求是用service去调用(不多赘述,不懂得找我)

import cn.com.demo.springboot.mongo.MongoApplication;
import cn.com.demo.springboot.mongo.model.User;
import cn.com.demo.springboot.mongo.repository.UserRepository;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MongoApplication.class)
public class MongoTest {

    @Autowired
    private UserRepository userRepository;

    @Test
    public void test(){

        // 创建10个User,并验证User总数
        userRepository.save(new User(1L, "aaaaa", 10));
        userRepository.save(new User(2L, "bbbaa", 20));
        userRepository.save(new User(3L, "cccaa", 30));
        userRepository.save(new User(4L, "dddaa", 40));
        userRepository.save(new User(5L, "eeeaa", 50));
        userRepository.save(new User(6L, "fffee", 60));
        userRepository.save(new User(7L, "gggee", 70));
        userRepository.save(new User(8L, "hhhee", 80));
        userRepository.save(new User(9L, "iiiee", 90));

        log.info(String.valueOf(userRepository.findAll().size()));
    }

    @Test
    public void test2(){
        List<User> u1 = userRepository.findByUsernameLike("aaa");
        log.info(u1.toString());

        List<User> u2 = userRepository.findByUsername("bbbaa");
        log.info(u2.toString());
    }

}

7.项目结构截图

在这里插入图片描述

8.启动测试类测试

在这里插入图片描述

9.测试成功


版权声明:本文为Micholas_Net原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。