一、创建数据库,创建管理员
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> { }