1. 程式人生 > >Day8.MongoDB學習筆記3

Day8.MongoDB學習筆記3

一、SpringDataMongoDB

SpringData家族成員之一,用於操作MongoDB的持久層框架,封裝了底層的mongodb-driver

  1. 匯入依賴
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
  1. 建立.yml 和 建立啟動類
  2. dao
public interface SpitDao extends MongoRepository<Spit,String> {
}
  1. service
@Service
@Transactional
public class SpitService {//因為是微服務,所以就直接介面和實現寫在一起了,利用架構解耦就可以了
    @Autowired
    private SpitDao spitDao;
    @Autowired
    private IdWorker idWorker;

    public List<Spit> findAll
(){ return spitDao.findAll(); } public Spit finfById(String id){ //springboot2.0.1 下data jpa的findOne版本限制。 return spitDao.findById(id).get(); } public void save(Spit spit){ spit.set_id(idWorker.nextId()+""); spitDao.save(spit); } public
void update(Spit spit){ spitDao.save(spit); } public void deleteById(String id){ spitDao.deleteById(id); } }
  1. controller
@RestController
@CrossOrigin    //跨域
@RequestMapping("/spit")
public class SpitController {
    @Autowired
    private SpitService spitService;

    @RequestMapping(method= RequestMethod.GET)
    public Result findAll(){
        return new Result(true, StatusCode.OK,"查詢成功",spitService.findAll());
    }

    @RequestMapping(value = "/{spitId}",method = RequestMethod.GET)
    public Result findById(@PathVariable String spitId){
        return new Result(true,StatusCode.OK,"查詢成功",spitService.finfById(spitId));
    }

    @RequestMapping(method= RequestMethod.GET)
    public Result save(@RequestBody Spit spit){
        spitService.save(spit);
        return new Result(true,StatusCode.OK,"儲存成功");
    }

    @RequestMapping(value = "/{spitId}", method= RequestMethod.PUT)
    public Result update(@PathVariable String spitId,@RequestBody Spit spit){
        spit.set_id(spitId);
        spitService.update(spit);
        return new Result(true,StatusCode.OK,"修改成功");
    }

    @RequestMapping(value = "/{spitId}",method= RequestMethod.DELETE)
    public Result delete(@PathVariable String spitId){
        spitService.deleteById(spitId);
        return new Result(true,StatusCode.OK,"刪除成功");
    }
}