Spring Boot整合MongoDB

本文介绍MongoDB的特性,包括其文档型数据结构、安装配置步骤,并详细讲解如何在SpringBoot项目中整合MongoDB,实现数据操作,适合初学者和开发者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB 是由 C++ 编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,它将数据存储为一个文档,数据结构由键值 (key=>value) 对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组,非常灵活。

下载安装

从官网或者是国内镜像网站下载tar.gz文件,然后进行解压。并设置好相应的文件夹和配置文件。

[root@zookeeper mongodb]# tar -zxvf mongodb-linux-x86_64-4.0.0.tgz 
mongodb-linux-x86_64-4.0.0/README
mongodb-linux-x86_64-4.0.0/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-4.0.0/MPL-2
mongodb-linux-x86_64-4.0.0/GNU-AGPL-3.0
mongodb-linux-x86_64-4.0.0/LICENSE-Community.txt
mongodb-linux-x86_64-4.0.0/bin/mongodump
mongodb-linux-x86_64-4.0.0/bin/mongorestore
mongodb-linux-x86_64-4.0.0/bin/mongoexport
mongodb-linux-x86_64-4.0.0/bin/mongoimport
mongodb-linux-x86_64-4.0.0/bin/mongostat
mongodb-linux-x86_64-4.0.0/bin/mongotop
mongodb-linux-x86_64-4.0.0/bin/bsondump
mongodb-linux-x86_64-4.0.0/bin/mongofiles
mongodb-linux-x86_64-4.0.0/bin/mongoreplay
mongodb-linux-x86_64-4.0.0/bin/mongod
mongodb-linux-x86_64-4.0.0/bin/mongos
mongodb-linux-x86_64-4.0.0/bin/mongo
mongodb-linux-x86_64-4.0.0/bin/install_compass
[root@zookeeper mongodb]# ls
mongodb-linux-x86_64-4.0.0  mongodb-linux-x86_64-4.0.0.tgz
[root@zookeeper mongodb]# cd mongodb-linux-x86_64-4.0.0
[root@zookeeper mongodb-linux-x86_64-4.0.0]# ls
bin  GNU-AGPL-3.0  LICENSE-Community.txt  MPL-2  README  THIRD-PARTY-NOTICES
[root@zookeeper mongodb-linux-x86_64-4.0.0]# mkdir -p ./data/db
[root@zookeeper mongodb-linux-x86_64-4.0.0]# mkdir -p ./logs
[root@zookeeper mongodb-linux-x86_64-4.0.0]# touch ./logs/mongodb.log

在这里插入图片描述
新建配置文件

vim mongodb.conf

内容如下:

port=27017
#db目录
dbpath=/usr/local/mongodb/mongodb-linux-x86_64-4.0.0/data/db
#日志目录
logpath=/usr/local/mongodb/mongodb-linux-x86_64-4.0.0/logs/mongodb.log
#后台
fork=true
#日志输出
logappend=true
#允许远程IP连接
bind_ip=0.0.0.0

启动:

[root@zookeeper mongodb-linux-x86_64-4.0.0]# ./bin/mongod --config mongodb.conf

需要注意,防火墙对端口进行开放

Spring Boot整合MongoDB

项目源码
1.导入依赖

 		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>

2.修改配置

spring.data.mongodb.host=192.168.1.106
spring.data.mongodb.port=27017
spring.data.mongodb.database=test

3.创建示例
(1)创建实体类

public class User {
    @Id
    private String id;
    private String userId;
    private String name;
    private String password;
    public User() {
    }

    public User(String userId, String name, String password) {
        this.userId = userId;
        this.name = name;
        this.password = password;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", userId='" + userId + '\'' +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

2.创建DAO层
和 JPA 一样,SpringBoot 同样为开发者准备了一套 Repository ,只需要继承 MongoRepository 传入实体类型以及主键类型即可。

@Repository
public interface UserRepository extends MongoRepository<User, String> {
}

3.创建service及其实现

public interface UserService {
    public void add(User user);
    List<User> find();
}
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserRepository userRepository;
    @Override
    public void add(User user) {
        userRepository.save(user);
    }

    @Override
    public List<User> find() {
        return userRepository.findAll();
    }
}

3.创建接口测试

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;
    @GetMapping("/add")
    public void save(@RequestBody User user){
        userService.add(user);
    }

    @GetMapping("/findAll")
    public String findAll(){
       for (User u : userService.find()){
           System.out.println(u);
       }
        return userService.find().toString();
    }
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值