栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot集成使用mongodb

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot集成使用mongodb

参考:https://www.cnblogs.com/wuhao-0206/p/12576780.html
https://www.jianshu.com/p/fffc41b5fbd2
https://www.cnblogs.com/superjie/p/9722147.html

mongodb中涉及到sprign data 得先了解下:

Spring Data简介

Spring Data 是spring的组件之一,主要目的是为了让开发者再工作中能更加轻松的完成CURD,简化代码应该是所有框架的目的吧。今天介绍的Spring-data-mongodb只是其中的一个模块而已,Spring团队的强大不言而喻,有兴趣的请移步官网查看更多模块。

springdata

Spring Data Jpa 方法定义规范

网上的博文关于这部分大同小异,这里只贴部分内容,详细规则可以参考官方文档。这些方法只是在特定情况下才用的到,比如MongoRepository不能完成的工作,但是在本人实际工作中MongoRepository已经覆盖了9成以上的需求,如果你感觉有什么需求它完成不了,很有可能是没有找对方法。
Spring-Data-Jpa

mongodb的配置:

pom文件
 
        
            org.springframework.boot
            spring-boot-starter-data-mongodb
        
yml文件
data:
    mongodb:
      database: mymongodb
      host: 49.235.125.47
      port: 27017

最重要的就是实体类和dao接口层:

实体类

实体类上通过
@document(collection = “c_room_user”)注解给其动态确定集合(相当于表)
@Field(“room_id”)注解给其动态确定文档(相当于字段)

package com.example.dtest.mongodbTestService.entity;

import lombok.Data;
import org.springframework.data.mongodb.core.mapping.document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;

@Data
@document(collection = "c_room_user")
public class RoomUser implements Serializable {
    private static final long serialVersionUID = 8999970788523520007L;
    private String _id;
    @Field("room_id")
    private String roomId;
    @Field("user_id")
    private String userId;
    @Field("mode")
    private String mode;

    @Field("staffType")
    private String staffType;

    @Field("taskId")
    private String taskId;

}

对其真正操作在dao层,继承MongoRepository类就可以了!
有了MongoRepository类,就可以进行对mongodb数据库的增删改查了
MongoRepository提供许多源方法,可以完成对数据库的基本操作
当然,若基本方法满足不了需要,可以自写方法,MongoRepository根据方法名来进行语句解析,这就会用到
Spring-Data-Jpa
的知识了

package com.example.dtest.mongodbTestService.dao;


import com.example.dtest.mongodbTestService.entity.RoomUser;
import org.springframework.data.mongodb.repository.MongoRepository;

public interface RoomUserRepository extends MongoRepository {
    RoomUser findByRoomId(String roomId);

//    List getByRoomId(String roomId);

    RoomUser findByUserId(String userId);

}

基本上就完成了,然后就是service和controller的了:

package com.example.dtest.mongodbTestService.service;


import com.example.dtest.mongodbTestService.entity.RoomUser;

public interface IRoomUserService {
    void save(RoomUser roomUser);
    RoomUser findByRoomId(String roomId);

//    List getByRoomId(String roomId);
    void delRoomUser(RoomUser roomUser);


}
package com.example.dtest.mongodbTestService.service;

import com.example.dtest.mongodbTestService.dao.RoomUserRepository;
import com.example.dtest.mongodbTestService.entity.RoomUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class RoomUserServiceImpl implements IRoomUserService {

    @Autowired
    private RoomUserRepository roomUserRepository;

    @Override
    public void save(RoomUser roomUser) {
        roomUserRepository.save(roomUser);
    }

    @Override
    public RoomUser findByRoomId(String roomId) {
        return roomUserRepository.findByRoomId(roomId);
    }

//    @Override
//    public List getByRoomId(String roomId) {
//        return roomUserRepository.getByRoomId(roomId);
//    }


    @Override
    public void delRoomUser(RoomUser roomUser) {
        roomUserRepository.delete(roomUser);
    }



}
package com.example.dtest.controller;

import com.example.dtest.mongodbTestService.entity.RoomUser;
import com.example.dtest.mongodbTestService.service.IRoomUserService;
import com.example.vo.Res;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

@RestController
@RequestMapping("/mogodb")
@Slf4j
@CrossOrigin
public class mongodbTestController {

    @Autowired
    IRoomUserService roomUserService;

    @PostMapping("savemogodb")
    public Res savemogodb(@RequestBody RoomUser roomUser, HttpServletRequest httpServletRequest){

        roomUserService.save(roomUser);
        return Res.success(1, "成功");

    }

    @PostMapping("selectmogodb")
    public Res selectmogodb(@RequestBody RoomUser roomUser, HttpServletRequest httpServletRequest){

        RoomUser roomUser1 = roomUserService.findByRoomId(roomUser.getRoomId());
        return Res.success(roomUser1);

    }

}

测试:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/696632.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号