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定义
1 2 3 4 5 6 | public interface BookDao extends MongoRepository<Book, Integer> { List<Book> findByAuthorContains(String author); Book findByNameEquals(String name); } |
MongoRepository中已经预定义了针对实体类的查询、添加、删除等操作。
创建Controller:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | @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就可以使用了
1 2 3 4 5 6 | @Data public class Book { private Integer id; private String name; private String author; } |
查看文章: Spring Boot+Vue全栈开发实战-6.2 整合MongoDB
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律