在springboot中使用mongodb

最近接到关于mongodb数据仓储的项目需求

之前用的springboot+mybatis+mysql/sqlserver的架构开发项目习惯了,接到需求,还是要先去了解一下mongodb是什么?以及mongodb怎么融入到之前的框架中?

带着这两个问题,马上开启 百度谷歌 模式,首先想到的应该就是找官网了。

具体MongoDB官方文档地址:
https://docs.mongodb.com/manual/introduction/

Spring关于MongoDB整合操作的官方文档地址:
https://docs.spring.io/spring-data/mongodb/docs/2.2.6.RELEASE/reference/html/#introduction

在学习MongoDB之前,首选要对其进行安装,可参考笔者之前写过的安装教程:
MongoDB在Linux/Windows下的安装教程
如对MongoDB GridFs 感兴趣的,可以参考:
SpringBoot 中使用MongoDB GridFs

对MongoDB有些许了解了之后,可以创建相关项目

  • 创建项目
    1、在这里插入图片描述在这里插入图片描述
    在现有的代码开发工具中创建时最方便的,只需要点点点就可以完成项目创建了,由于创建的时候勾选了引用Spring Data MongoDB的包,MongoDB默认环境是具备了
    2、在这里插入图片描述
    或者在现有maven中加入从maven仓库找到的MongoDB操作包,注意:有可能发生版本不一致问题

    再在application.properties/application.yml中配置MongoDB的连接属性

  • 配置MongoDB连接属性和客户端配置类

    ### MongoDB配置文件
    spring.data.mongodb.host=127.0.0.1
    spring.data.mongodb.port=27017
    spring.data.mongodb.database=admin
    
    import com.mongodb.MongoClientSettings;
    import com.mongodb.ServerAddress;
    import com.mongodb.client.MongoClient;
    import com.mongodb.client.MongoClients;
    import com.mongodb.client.MongoDatabase;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import java.util.Arrays;
    
    /**
    * mongoDB 配置类
    */
    @Configuration
    public class MongoConfig {
    
       @Value("${spring.data.mongodb.host}")
       private String host;
    
       @Value("${spring.data.mongodb.port}")
       private Integer port;
    
       @Value("${spring.data.mongodb.database}")
       private String database;
    
       @Bean
       public MongoClient getMongoClient(){
           MongoClient mongoClient = MongoClients.create(
                   MongoClientSettings.builder()
                           .applyToClusterSettings(builder ->
                                   builder.hosts(Arrays.asList(new ServerAddress(host, port))))
                           .build());
           return mongoClient;
       }
    }
    
  • 在java类中注入 MongoTemplate (MongoDB数据操作类)[有点类似 JdbcTemplate ]

    import com.java.common.ResultMsg;
    import com.java.domain.ConfigTable;
    import com.java.service.IConfigTableService;
    import org.bson.Document;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.mongodb.core.MongoTemplate;
    import org.springframework.data.mongodb.core.query.Query;
    import org.springframework.stereotype.Service;
    
    import java.util.ArrayList;
    import java.util.List;
    
    @Service
    public class ConfigTableService implements IConfigTableService {
    
        @Autowired
        private MongoTemplate mongoTemplate;
    
        @Override
        public ResultMsg<List<ConfigTable>> getIndexSelection(){
            ResultMsg<List<ConfigTable>> resultMsg = new ResultMsg<>();
            List<ConfigTable> list = new ArrayList<>();
            int status = 0;
            try {
                list = mongoTemplate.findAll(ConfigTable.class, "config_table");
                resultMsg.setData(list);
                status = 1;
            }catch (Exception e) {
                e.printStackTrace();
            }
            resultMsg.setStatus(status);
            return resultMsg;
        }
    }
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值