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版权协议,转载请附上原文出处链接和本声明。