美文网首页
Spring Boot 整合 MongoDB

Spring Boot 整合 MongoDB

作者: wesker8080 | 来源:发表于2018-08-15 11:33 被阅读0次

    准备工作

    安装好MongoDB相关环境
    启动MongoDB服务
    如不熟悉可参考我的上篇文章 MongoDB入门教程

    往MongoDB导入测试数据

    db.student.save({name:"wesker",sex:"man",age:24,address:"shenzhen"});
    

    导入依赖

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

    配置数据源

    Spring Boot 在你导入依赖的时候就会给你配置好默认的数据源了,如果你的MongoDB使用的是默认配置的话就可以不用配置,默认数据源是

    spring.data.mongodb.uri=mongodb://localhost:27017/test
    

    配置数据源(无密码)

    spring.data.mongodb.uri=mongodb://host:port/database
    

    配置数据源(有密码)

    pring.data.mongodb.uri=mongodb://username:password@host:port/database
    

    定义业务实体

    /**
     * MongoDB 测试Bean
     *
     * @author MR.ZHANG
     * @create 2018-08-14 17:14
     */
    @Document(collection="student") //指定collection
    public class MongoBean {
        private String name;
        private Integer age;
        private String sex;
        private String address;
        public MongoBean() {
        }
    
        public MongoBean(String name, Integer age, String sex, String address) {
            this.name = name;
            this.age = age;
            this.sex = sex;
            this.address = address;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        @Override
        public String toString() {
            return "MongoBean{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    ", sex='" + sex + '\'' +
                    ", address='" + address + '\'' +
                    '}';
        }
    }
    

    PS:这里需要注意几点

    • 实体字段名与数据库存储的字段名最好保持一致
    • @Document(collection="student")这个注解是用来指定对应的collection(在入门教程里有讲解)

    创建操作数据库接口Dao

    /**
     * MongoDB操作数据库接口
     *
     * @author MR.ZHANG
     * @create 2018-08-14 17:22
     */
    public interface MongoRep extends MongoRepository<MongoBean,String> {
        MongoBean findByAge(int age);
        MongoBean findByName(String name);
    }
    

    PS:

    • 接口类MongoRep继承了MongoRepository并已经为我们封装了基本的CURD操作
    • MongoBean findByAge(int age);是自定义的查询。自定义查询只要严格按照CURD格式的接口名称并且参数与MongoDB里的字段相对应的话,Spring Boot就能帮我们完成相关操作

    测试

    测试使用Restful API

        @GetMapping("/mongo/get/name/{name}")
        @ResponseBody
        public MongoBean getDataFromMongoByName(HttpServletResponse response,
                                                @PathVariable(value = "name") String name) {
            MongoBean mongoBean = mongoRep.findByName(name);
            return mongoBean;
        }
    

    结果

    { "address":"shenzhen", "age":24, "name":"wesker", "sex":"man" }
    

    相关文章

      网友评论

          本文标题:Spring Boot 整合 MongoDB

          本文链接:https://www.haomeiwen.com/subject/juvibftx.html