Spring Boot整合MongoDB

一、创建数据库,创建管理员

use.admin  
db.createUser({
  user: 'admin',  // 用户名
  pwd: '123456',  // 密码
  roles:[{
    role: 'root',  // 角色
    db: 'admin'  // 数据库
  }]
})

 

 

二、配置文件

application.properties

spring.data.mongodb.uri=mongodb://yh:12345yehuan@localhost:27017/book

 

三、主要代码

1.BookController.java

package com.yh.mongopro.controller;

import com.yh.mongopro.entity.Book;
import com.yh.mongopro.service.BookService;
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("/book")
public class BookController {
    @Autowired
    private BookService bookService;

    @RequestMapping(value = "/save")
    public String saveBook() {
        System.out.println("----");
        return bookService.saveBook();
    }

    @RequestMapping(value = "/query")
    public List<Book> findAll() {
        return bookService.findAll();
    }

    @RequestMapping(value = "/queryByName")
    public List<Book> find() {
        return bookService.find();
    }
}

 

2.BookService.java

package com.yh.mongopro.service;

import com.yh.mongopro.entity.Book;

import java.util.List;

public interface BookService {

    String saveBook();

    List<Book> findAll();

    List<Book> find();
}

 

3.BookServiceImpl.java

方法一:MongoTemplate

package com.yh.mongopro.service.serviceImpl;

import com.yh.mongopro.entity.Book;import com.yh.mongopro.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.regex.Pattern;

@Service("bookService")
public class BookServiceImpl implements BookService {
    @Autowired
    private MongoTemplate mongoTemplate;

    @Override
    public String saveBook() {
        Book book = new Book();
        book.setName("安徒生童话");
        book.setIntroduction("好书");
        mongoTemplate.save(book);
        return "添加成功";
    }

    @Override
    public List<Book> findAll() {
        return mongoTemplate.findAll(Book.class);
    }

    @Override
    public List<Book> find() {
        //模糊匹配,查询以 ^开始 以$结束 .*相当于Mysql中的%
        Pattern pattern = Pattern.compile("^.*Boot.*$", Pattern.CASE_INSENSITIVE);
        Query query = Query.query(Criteria.where("name").regex(pattern));
        return mongoTemplate.find(query, Book.class);
    }
}

方法二:继承MongoRepository接口

package com.yh.mongopro.service.serviceImpl;

import com.yh.mongopro.entity.Book;
import com.yh.mongopro.mapper.BookRepository;
import com.yh.mongopro.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;

import java.util.List;
import java.util.regex.Pattern;

@Service("bookService")
public class BookServiceImpl implements BookService {

    @Autowired
    private BookRepository bookRepository;

    @Override
    public String saveBook() {
        Book book = new Book();
        book.setName("安徒生童话");
        book.setIntroduction("好书");
        bookRepository.save(book);
        return "添加成功";
    }
}

 

BookRepository.java

package com.yh.mongopro.mapper;

import com.yh.mongopro.entity.Book;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface BookRepository extends MongoRepository<Book, String> {
}

 

posted @ 2020-03-08 18:37  想看云飞却没风~  阅读(211)  评论(0编辑  收藏  举报