当前位置:Gxlcms > 数据库问题 > Spring Boot(十一):Spring Boot 中 MongoDB 的使用

Spring Boot(十一):Spring Boot 中 MongoDB 的使用

时间:2021-07-01 10:21:17 帮助过:18人阅读

包引用

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

 


2、在 application.properties 中添加配置

spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/test

多个 IP 集群可以采用以下配置:

spring.data.mongodb.uri=mongodb://user:pwd@ip1:port1,ip2:port2/database

 

2、创建数据实体

 

 

package com.neo.model;

import java.io.Serializable;

/**
 * Created by summer on 2017/5/5.
 */
public class User implements Serializable {
        private static final long serialVersionUID = -3258839839160856613L;
        private Long id;
        private String userName;
        private String passWord;

        public Long getId() {
                return id;
        }

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

        public String getUserName() {
                return userName;
        }

        public void setUserName(String userName) {
                this.userName = userName;
        }

        public String getPassWord() {
                return passWord;
        }

        public void setPassWord(String passWord) {
                this.passWord = passWord;
        }

        @Override
        public String toString() {
                return "UserEntity{" +
                        "id=" + id +
                        ", userName=‘" + userName + ‘\‘‘ +
                        ", passWord=‘" + passWord + ‘\‘‘ +
                        ‘}‘;
        }
}

 

 

 

 

3、创建实体的增删改查操作

Repository 层实现了 User 对象的增删改查

  1. package com.neo.repository.impl;
    
    import com.mongodb.client.result.UpdateResult;
    import com.neo.repository.UserRepository;
    import com.neo.model.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.mongodb.core.MongoTemplate;
    import org.springframework.data.mongodb.core.query.Criteria;
    import org.springframework.data.mongodb.core.query.Query;
    import org.springframework.data.mongodb.core.query.Update;
    import org.springframework.stereotype.Component;
    
    /**
     * Created by summer on 2017/5/5.
     */
    @Component
    public class UserRepositoryImpl implements UserRepository {
    
        @Autowired
        private MongoTemplate mongoTemplate;
    
        /**
         * 创建对象
         * @param user
         */
        @Override
        public void saveUser(User user) {
            mongoTemplate.save(user);
        }
    
        /**
         * 根据用户名查询对象
         * @param userName
         * @return
         */
        @Override
        public User findUserByUserName(String userName) {
            Query query=new Query(Criteria.where("userName").is(userName));
            User user =  mongoTemplate.findOne(query , User.class);
            return user;
        }
    
        /**
         * 更新对象
         * @param user
         */
        @Override
        public long updateUser(User user) {
            Query query=new Query(Criteria.where("id").is(user.getId()));
            Update update= new Update().set("userName", user.getUserName()).set("passWord", user.getPassWord());
            //更新查询返回结果集的第一条
            UpdateResult result =mongoTemplate.updateFirst(query,update,User.class);
            //更新查询返回结果集的所有
            // mongoTemplate.updateMulti(query,update,UserEntity.class);
            if(result!=null)
                return result.getMatchedCount();
            else
                return 0;
        }
    
        /**
         * 删除对象
         * @param id
         */
        @Override
        public void deleteUserById(Long id) {
            Query query=new Query(Criteria.where("id").is(id));
            mongoTemplate.remove(query,User.class);
        }
    }
    

     

4、开发对应的测试方法

 

技术图片

5、查看验证结果

 

可以使用工具 MongoVUE 工具来连接后直接图形化展示查看,也可以登录服务器用命令来查看

1.登录 mongos

bin/mongo -host localhost -port 20000

2、切换到 test 库

use test

3、查询 user 集合数据

db.user.find()

根据3查询的结果来观察测试用例的执行是否正确。

到此 Spring Boot 对应 MongoDB 的增删改查功能已经全部实现。

多数据源 MongoDB 的使用

接下来实现 MongoDB 多数据源的使用

1、pom 包配置

技术图片


2、配置两条数据源,如下:

技术图片


3、配置两个库的数据源

封装读取以 Mongodb 开头的两个配置文件

 技术图片

配置不同包路径下使用不同的数据源

技术图片

 

 

读取对应的配置信息并且构造对应的 MongoTemplate

技术图片 

两个库的配置信息已经完成。

4、创建两个库分别对应的对象和 Repository

技术图片

5、最后测试

 技术图片

到此,MongoDB 多数据源的使用已经完成。

文章内容已经升级到 Spring Boot 2.x

示例代码:https://github.com/ityouknow/spring-boot-examples/tree/master/spring-boot-mongodb

 

Spring Boot(十一):Spring Boot 中 MongoDB 的使用

标签:god   开放   pwd   https   tar   str   用例   分布   增删改   

人气教程排行