当前位置: 代码网 > it编程>数据库>Nosql > springboot整合mongodb

springboot整合mongodb

2024年05月18日 Nosql 我要评论
1.mongodb的安装和简介1.1简介mongodb 是由c++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。mongodb 旨在为we

1.mongodb的安装和简介

1.1简介

mongodb 是由c++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。mongodb 旨在为web应用提供可扩展的高性能数据存储解决方案。mongodb 将数据存储为一个文档,数据结构由键值(key=>value)对组成。mongodb 文档类似于 json 对象。字段值可以包含其他文档,数组及文档数组。

1.2安装

网上安装的教程也比较多,我在这里就不再多说了。直接提供一下我自己的db安装包和可视化安装包,这里的版本可能有点旧,需要新的包可以自行去网上下载!

数据库链接:https://pan.baidu.com/s/1pu7ijrzmzkyep-jrghenba     提取码:7cz2 

可视化工具链接:https://pan.baidu.com/s/1zbe_f5eab1kyk6gavono6w  提取码:9g55 

1.3配置环境变量和检查安装情况

这里的配置类似于jdk的配置,不再多说!查看安装和启动数据库

2.springboot集成mongodb

为了节省篇幅,好多注释和空行都去掉了,大家见谅!

2.1pom文件中maven的引入

<!-- mongodb -->
<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-data-mongodb</artifactid>
</dependency>

2.2properties文件配置

#################mongodb################
#spring.data.mongodb.uri=mongodb://username:password@localhost:27017/test
spring.data.mongodb.uri=mongodb://localhost:27017/springboot

2.3dao层的编写

package com.lengmo.dao;
 
import com.lengmo.entity.student;
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.data.mongodb.core.query.update;
import org.springframework.stereotype.component;
import java.util.list;
 
@component
public class mongodbdao {
    @autowired
    private mongotemplate mongotemplate;
    public void save(student s) {
        mongotemplate.save(s);
    }
    public student get(query query) {
        return mongotemplate.findone(query,student.class);
    }
    public list<student> findall() {
        return mongotemplate.findall(student.class);
    }
    public void update(query query, update update) {
        mongotemplate.updatemulti(query,update,student.class);
    }
    public void delete(query query) {
        mongotemplate.remove(query,student.class);
    }
}

2.4service层的编写

这里要熟悉mongodb的一些常规操作方法,多用多练习即可!!!!

package com.lengmo.service;
 
import com.lengmo.dao.mongodbdao;
import com.lengmo.entity.hobbies;
import com.lengmo.entity.student;
import org.springframework.beans.factory.annotation.autowired;
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.service;
import java.util.list;
 
@service
public class mongodbservice {
    @autowired
    private mongodbdao mongodbdao;
    public void save() {
        student s=new student();
        s.setname("lis");
        s.setage(17);
        s.setsex(1);
        s.setheight(182);
        hobbies h=new hobbies();
        h.sethname("swing");
        s.sethobbies(h);
        mongodbdao.save(s);
    }
    public student get() {
       //and查询
        /* criteria criterianame=criteria.where("name").is("lisi");
        criteria criteriaaage=criteria.where("age").is(17);
        criteria andcriteria = new criteria();
        andcriteria.andoperator(criterianame,criteriaaage);
        query query=new query(andcriteria);*/
        //or查询
        criteria criterianame=criteria.where("name").is("lisi");
        criteria criteriaaage=criteria.where("age").gt(16);
        criteria orcriteria = new criteria();
        orcriteria.oroperator(criterianame,criteriaaage);
        query query=new query(orcriteria);
 
        return  mongodbdao.get(query);
    }
    public list<student> findall() {
        return mongodbdao.findall();
    }
    public void update() {
        query query=new query(criteria.where("name").is("zhangsan"));
        update update=new update();
        update.set("age",30);
        update.set("height",188);
        update.set("hobbies.hname","basketball");
        mongodbdao.update(query,update);
    }
    public void delete() {
        query query=new query(criteria.where("name").is("zhangsan"));
        mongodbdao.delete(query);
    }
}

2.5conreoller层的编写

package com.lengmo.controller;
 
import com.lengmo.entity.student;
import com.lengmo.service.mongodbservice;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.restcontroller;
import java.util.list;
 
@restcontroller
@requestmapping("/mongodb")
public class mongodbcontroller {
    @autowired
    private mongodbservice mongodbservice;
    @requestmapping("/save")
    public void save(){
        mongodbservice.save();
    }
    @requestmapping("/get")
    public student get(){
        return mongodbservice.get();
    }
    @requestmapping("/findall")
    public list<student> findall(){
        return mongodbservice.findall();
    }
 
    @requestmapping("/update")
    public void update(){
        mongodbservice.update();
    }
    @requestmapping("/delete")
    public void delete(){
        mongodbservice.delete();
    }
}

2.6实体类层的编写(两个类放一起了,你们记得分开)

package com.lengmo.entity;
import lombok.data;
import javax.persistence.id;
 
@data
//之所以没有像 mysql那样需要@table标签去标注我们的表名与实体类的对应关系。是因为 mongodb默认类名即与表名对应。
public class student{
    @id
    private string id;
    private string name;
    private integer age;
    private integer sex;
    private integer height;
    private hobbies hobbies;
}
 
 
 
package com.lengmo.entity;
import lombok.data;
 
@data
public class hobbies {
    private  string hname;
}

至此所有的整合就完成了,接下来就是去验证各个方法的使用了!

到此这篇关于springboot整合mongodb的文章就介绍到这了,更多相关springboot整合mongodb内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com