springboot连接MongoDB数据库并使用及其相关配置

该博客介绍了如何使用Spring Boot与MongoDB进行集成,包括实体类的定义、配置Controller、Service层以及ServiceImpl层的实现,详细展示了数据存取操作,并提供了两种不同的数据库配置方式。测试连接成功,实现了数据的保存功能。

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

1-整体目录如下:

 

 2-实体类:在实体类层配置表名

package com.example.test.entity;
 
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
 
import java.io.Serializable;
 
@Data
@Document(collection = "test")  //表名
public class MongoTest  implements Serializable {
    private Integer id;
    private Integer age;
    private String name;
 
    public MongoTest() {
 
    }
 
    public Integer getId() {
        return id;
    }
 
    public void setId(Integer id) {
        this.id = id;
    }
 
    public Integer getAge() {
        return age;
    }
 
    public void setAge(Integer age) {
        this.age = age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public MongoTest(Integer id, Integer age, String name) {
        this.id = id;
        this.age = age;
        this.name = name;
    }
 
    @Override
    public String toString() {
        return "MongoTest{" +
                "id=" + id +
                ", age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}


3-配置controller层:

package com.example.test.controller;
 
import com.example.test.entity.MongoTest;
import com.example.test.service.MongoTestService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.ArrayList;
import java.util.List;
 
@Slf4j
@Validated
@RestController
@RequestMapping("Mongo")
public class MongoTestC {
 
    @Autowired
    private MongoTestService mongoTestService;
 
    @GetMapping(value = "/test1")
    public void saveTest(){
        List<MongoTest> list = new ArrayList<MongoTest>();
        MongoTest mgtest = new MongoTest();
        mgtest.setId(1111);
        mgtest.setAge(3223);
        mgtest.setName("111测试");
        list.add(mgtest);
        System.out.println(mgtest);
        mongoTestService.saveTest(mgtest);
    }
}


4-配置service层和ServiceImpl层:

package com.example.test.service;
 
import com.example.test.entity.MongoTest;
import org.springframework.stereotype.Service;
 
@Service
public interface MongoTestService {
 
 
    /**
     * 创建对象
     * @param mgtest
     */
    public void saveTest(MongoTest mgtest);
}
package com.example.test.service.serviceImpl;
 
import com.example.test.entity.MongoTest;
import com.example.test.service.MongoTestService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
 
@Slf4j
@Service("MongoTestService")
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class MongoTestServiceImpl implements MongoTestService {
 
    @Autowired
    private MongoTemplate mongoTemplate;
 
    /**
     * 创建对象
     * @param mgtest
     */
    @Override
    public void saveTest(MongoTest mgtest) {
        mongoTemplate.save(mgtest);
    }
}


5- 配置文件的配置:

配置方法1:    

spring:
    data:
     mongodb:
        uri: mongodb://localhost:27017/test
#本地数据库配置直接输入地址和端口号就行,不用输入密码,我才用的是这种方式


配置方法2:输入相关的地址和用户名和密码

#地址
spring.data.mongodb.host=127.0.0.1
#端口
spring.data.mongodb.port=27017
#认证的库
spring.data.mongodb.authentication-database=admin
#操作的库
spring.data.mongodb.database=test
#账号
spring.data.mongodb.username=root
#密码  此时 @符号不替换也可以
spring.data.mongodb.password=123456


6-数据库设置:使用navicat设置;

 

7-测试连接:成功调通

 

### 集成和使用MongoDB数据库 为了在Spring Boot项目中集成使用MongoDB数据库,开发者可以利用`Spring Data MongoDB`库[^1]。此库提供了对MongoDB的支持,使得操作文档型数据库变得简单而高效。 #### 添加依赖项 首先,在项目的构建文件(Maven或Gradle)中加入必要的依赖项。对于Maven而言,需向`pom.xml`添加如下配置: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> ``` 这段XML片段会引入所有必需的类库来支持与MongoDB交互的功能。 #### 连接MongoDB实例 接着,通过修改位于资源目录下的`application.properties`或`application.yml`文件中的属性设置,指定连接到哪个具体的MongoDB服务器以及认证信息等参数。例如,在YAML格式下可这样写入: ```yaml spring: data: mongodb: host: localhost port: 27017 database: testdb ``` 这里定义了一个名为`testdb`的数据存储位置,指定了默认监听地址和端口上的本地MongoDB服务作为目标主机[^2]。 #### 创建实体模型 之后便是设计应用程序内部使用的Java对象结构体——即所谓的“领域模型”。这些POJOs应当被映射为持久化层里的集合记录形式;为此目的,通常会在相应的类上标注特定注解以便框架识别其意图。下面给出了一种可能的设计方案: ```java import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "users") public class User { @Id private String id; private String name; private int age; public User() {} // Getters & Setters... } ``` 上述代码段展示了怎样声明一个简单的用户表单对应的实体类,其中包含了基本字段及其访问器方法。 #### 编写数据访问接口 最后一步就是编写用于CRUD操作的服务组件了。借助于继承自`CrudRepository<T,ID>`接口的方式,能够快速获得一组预设好的增删改查功能实现。比如针对前面提到过的User类型,我们可以如此定义仓库接口: ```java import org.springframework.data.repository.CrudRepository; public interface UserRepository extends CrudRepository<User, String> {} ``` 有了这个模板化的DAO层后,就可以轻松地执行各种查询语句而不必关心底层SQL语法细节了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值