SpringBoot 整合MongoDB
Mongodb
MongoDB是一种面向文档的数据库管理系统,它是一个介于关系型数据库和非关系型数据库之间的产品,MongoDB功能丰富,它支持一种类似JSON的BSON数据格式,既可以存储简单的数据格式,也可以存储复杂的数据类型。MongoDB最大的特点是它支持的查询语言非常强大,并且还支持对数据建立索引。
在pom.xml中添加相关依赖
<!---mongodb相关依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
在application.yml中配置MongoDB的连接信息
spring:
data:
mongodb:
authentication-database: admin
database: test
host: 172.19.25.170
port: 27017
username: sang
password: 123
创建BookDao:
BookDao的定义类似于Spring Data JPA中的Repository定义
public interface BookDao extends MongoRepository<Book, Integer> {
List<Book> findByAuthorContains(String author);
Book findByNameEquals(String name);
}
MongoRepository中已经预定义了针对实体类的查询、添加、删除等操作。
创建Controller:
@RestController
public class BookController {
@Autowired
BookDao bookDao;
@Autowired
MongoTemplate mongoTemplate;
@GetMapping("/test2")
public void test2() {
List<Book> books = new ArrayList<>();
Book b1 = new Book();
b1.setId(3);
b1.setName("围城");
b1.setAuthor("钱钟书");
books.add(b1);
Book b2 = new Book();
b2.setId(4);
b2.setName("宋诗选注");
b2.setAuthor("钱钟书");
books.add(b2);
mongoTemplate.insertAll(books);
List<Book> list = mongoTemplate.findAll(Book.class);
System.out.println(list);
Book book = mongoTemplate.findById(3, Book.class);
System.out.println(book);
}
@GetMapping("/test1")
public void test1() {
List<Book> books = new ArrayList<>();
Book b1 = new Book();
b1.setId(1);
b1.setName("朝花夕拾");
b1.setAuthor("鲁迅");
books.add(b1);
Book b2 = new Book();
b2.setId(2);
b2.setName("呐喊");
b2.setAuthor("鲁迅");
books.add(b2);
bookDao.insert(books);
List<Book> books1 = bookDao.findByAuthorContains("鲁迅");
System.out.println(books1);
Book book = bookDao.findByNameEquals("朝花夕拾");
System.out.println(book);
}
}
除了继承MongoRepository外,Spring Data MongoDB还提供了MongoTemplate用来方便地操作MongoDB。在Spring Boot中,若添加了MongoDB相关的依赖,而开发者并没有提供MongoTemplate,则默认会有一个MongoTemplate注册到Spring容器中,相关配置源码在MongoDataAutoConfiguration类中。因此,用户可以直接使用MongoTemplate,在Controller中直接注入MongoTemplate就可以使用了
@Data
public class Book {
private Integer id;
private String name;
private String author;
}
查看文章: Spring Boot+Vue全栈开发实战-6.2 整合MongoDB

浙公网安备 33010602011771号