springboot mongodb整合_第七章:springboot整合MongoDB

本篇博文主要讲述入使用springboot对MongoDB进行整合

这里我们需要先安装配置MongoDB。在官网下载会比较慢,(反正我是比较慢啦,不知道各位的了)所以我特意提供了一下我下载好的安装包,以及补丁,还有一个可视化工具。地址在下方,有需要的可以前往下载。

如果有不会的安装配置的可参考:MongoDB的安装配置

此处说明一下,因为每个人的电脑环境电脑系统不一致,可能配置可以适当的缩减,就拿我来说,我在公司安装好后需要打补丁才可以使用,但是我在家里自己的电脑上安装就可以直接使用,不需要补丁。请根据实际情况进行安装配置。

准备工作:

  • 安装MongoDB
  • jdk1.8+
  • Maven3.0+
  • idea

创建工程:

我们已经创建了许多次工程了,这里就不再赘述了,如果刚接触的新手朋友可以参考:springboot入门体验

引入相关的依赖,以下是我的完整依赖:

<?xml version="1.0" encoding="UTF-8"?>4.0.0com.wujie    springboot-mongodb    0.0.1-SNAPSHOTjarspringboot-mongodbDemo project for Spring Bootorg.springframework.boot        spring-boot-starter-parent        2.0.3.RELEASEUTF-8UTF-81.8org.springframework.boot            spring-boot-starter-data-mongodb        org.springframework.boot            spring-boot-starter-web        org.springframework.boot            spring-boot-starter-test            testorg.springframework.boot                spring-boot-maven-plugin            
581774c53b73b8f4e5542bdc479c6545.gif

需要加入spring-boot-starter-data-mongodb依赖。

接下来就是配置数据源:

spring:  data:    mongodb:      uri: mongodb://localhost:27017/mydbserver:  port: 80
5e6ce3c5093f8b6f92ac95085370c3bd.gif

如果有安全认证的地址应该这样写:mongodb://name:pass@localhost:27017/mydb

不过我个人建议新接触的朋友们最后先不要进行安全认证。

定义一个实体:

public class Student {    /**     * id     */    @Id    private String id;    /**     * 姓名     */    private String name;    /**     * 性别     */    private String sex;    public Student(String name, String sex) {        this.name = name;        this.sex = sex;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    @Override    public String toString() {        return "Student{" +                "id='" + id + ''' +                ", name='" + name + ''' +                ", sex='" + sex + ''' +                '}';    }}
b12fdedafdf8ad9149f09fe334ef8c50.gif

新建dao层对数据操作:

写一个接口,继承MongoRepository,这个接口有了基本的CRUD的操作,当不能满足需求的时候,可以进行一些自定的方法,比如查询,findByName根据名字查询,findBySex,根据性别查询,在springboot中,我们只需要定义一个方法即可,springboot已经帮我们实现了。注意的是findByName需要严格的按照存入的MongoDB的字段对应。

public interface StudentRepository extends MongoRepository {    public Student findByName(String name);    public List findBySex(String sex);}
7fd1d827ce3d40be01c035690f8676fc.gif

新建service层:

public interface StudentService {    public Student add (Student student);    public UpdateResult update (Student student);    public void delete(String id);    public Student findByName(String name);    public List findBySex(String sex);}
38e7c80cc6056b3cd7503910c4e59814.gif

新建service层的实现类:

@Servicepublic class StudentServiceImpl implements StudentService {    @Autowired    private StudentRepository studentRepository;    @Autowired    private MongoTemplate mongoTemplate;    @Override    public Student add(Student student) {        Student student1 = studentRepository.save(student);        return student1;    }    @Override    public UpdateResult update(Student student) {        Query query = new Query();        Criteria criteria = new Criteria();        query.addCriteria(Criteria.where("_id").is(student.getId()));        String collectionsName = "student";        Update update = new Update();        update.set("_id",student.getId());        UpdateResult result = mongoTemplate.updateFirst(query, update, collectionsName);        return result;    }    @Override    public void delete(String id) {        studentRepository.deleteById(id);    }    @Override    public Student findByName(String name) {       return studentRepository.findByName(name);    }    @Override    public List findBySex(String sex) {        return studentRepository.findBySex(sex);    }}
da272d5b98c46579d418fcc0b5f0c5b1.gif

新建controller:

@RestController@RequestMapping("student")public class StudentController {    @Autowired    private StudentService studentService;    @RequestMapping("add")    public Student add(Student student){        return  studentService.add(student);    }    @RequestMapping("update")    public UpdateResult update(Student student){        return studentService.update(student);    }    @RequestMapping("findByName")    public Student findByName(String name){        return studentService.findByName(name);    }    @RequestMapping("findBySex" )    public List findBySex(String sex){        return studentService.findBySex(sex);    }    @RequestMapping("delete")    public String delete(String id){        studentService.delete(id);        return "success";    }}
c8f58e54e8a55b6ce13beb98f97a3248.gif

此时,所有需要的类都已经完成,我们只需要启动SpringbootMongodbApplication的mian方法即可,访问http://localhost/student/add?name=test1123&sex=男

即可得到如下的结果:

730d6cb54f4fb5c45a7e44929a717eb4.png
327b159f80ce3b72037f3736d6daf4c0.gif

以上的接口都已经经过测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值