spring-boot-starter-data-mongodb操纵MongoDB快速上手

1.导入依赖

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

yml配置文件
在这里插入图片描述

2.实体类

注意:实体类名称要和mongo数据库中集合名称对应,不然查询时查不出来,添加时,会将数据添加入以实体类为名称的集合内。
@Data
@AllArgsConstructor
@NoArgsConstructor 这三个为lombok Lombok快速上手

package com.diploma.comments.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document  //表示映射为mongoDB数据库内一个集合
public class Comment implements Serializable {
    @Id
    private String _id;
    private String uid;
    private String content;
    private String visits;//访问数量
    private String comment;
    private Date settime;
    private String state;


}

3.dao层

package com.diploma.comments.dao;

import com.diploma.comments.entity.Comment;
import org.springframework.data.mongodb.repository.MongoRepository;

public interface CommentsDao extends MongoRepository<Comment,String> {

}

4.service层

package com.diploma.comments.service;

import com.diploma.comments.dao.CommentsDao;
import com.diploma.comments.entity.Comment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import utils.IdWorker;

import java.util.List;

@Service
@Transactional
public class CommentsService {
    @Autowired
    private CommentsDao commentsDao;
    @Autowired
    private IdWorker idWorker;
    public List<Comment> findAll(){
        return commentsDao.findAll();
    }
    public Comment findById(String id){
        return commentsDao.findById(id).get();
    }
    public void save(Comment comment){
        String id = idWorker.nextId()+"";
        comment.set_id(id);
        commentsDao.save(comment);
    }
    public void  update(Comment comment){
        commentsDao.save(comment);

    }
    public void deleteById(String id){
        commentsDao.deleteById(id);
    }
}

5.controller层

package com.diploma.comments.controller;

import com.diploma.comments.entity.Comment;
import com.diploma.comments.service.CommentsService;
import entity.Result;
import entity.ResultCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@RestController
@CrossOrigin
@RequestMapping("/comments")
public class CommentsController {
    @Autowired
    private CommentsService commentsService;
    @RequestMapping(method = RequestMethod.GET)
    public Result findAll(){
        System.out.println("-----------------------------");
        List<Comment> list = commentsService.findAll();
        for (Comment comment : list) {
            System.out.println(comment);
        }
        System.out.println("------------------------------"+list.size());
        return new Result(ResultCode.SUCCESS,list);
    }
    @RequestMapping(value = "/{comentId}",method = RequestMethod.GET)
    public Result findById(@PathVariable String commentId){
        return  new Result(ResultCode.SUCCESS,commentsService.findById(commentId));
    }
    @RequestMapping(method = RequestMethod.POST)
    public Result save(@RequestBody Comment comment){
   return new Result(ResultCode.SUCCESS);
    }
    @RequestMapping(value = "/{comentId}",method = RequestMethod.PUT)
    public Result update(@PathVariable String comentId,@RequestBody Comment comment){
        comment.set_id(comentId);
        commentsService.update(comment);
        return new Result(ResultCode.SUCCESS);
    }
    @RequestMapping(value = "/{comentId}",method = RequestMethod.DELETE)
    public Result delete(@PathVariable String comentId){
        commentsService.deleteById(comentId);
        return new Result(ResultCode.SUCCESS);
    }


}

6.postman测试

在这里插入图片描述
over…

发布了75 篇原创文章 · 获赞 80 · 访问量 5700

猜你喜欢

转载自blog.csdn.net/qq_37356556/article/details/104678763
今日推荐