SpringBoot集成MongoDB

SpringBoot集成MongoDB

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


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

0.新建Maven项目

SpringBoot集成MongoDB_第1张图片
SpringBoot集成MongoDB_第2张图片
SpringBoot集成MongoDB_第3张图片
SpringBoot集成MongoDB_第4张图片

1.POM文件配置



    4.0.0

    cn.com.demo
    spring-boot-mongo
    1.0-SNAPSHOT

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.3.RELEASE
        
    

    
        UTF-8
        UTF-8
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.boot
            spring-boot-devtools
            true
        

        
        
            org.springframework.boot
            spring-boot-starter-data-mongodb
        

        
        
            org.projectlombok
            lombok
            1.18.0
        

    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    true
                
            
        
    
    

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 {

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

    /**
     * Like(模糊查询)
     * {"username" : name}
     * */
    List 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 u1 = userRepository.findByUsernameLike("aaa");
        log.info(u1.toString());

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

}

7.项目结构截图

SpringBoot集成MongoDB_第5张图片

8.启动测试类测试

SpringBoot集成MongoDB_第6张图片

9.测试成功

你可能感兴趣的:(SpringBoot)