MongoDB 是一个基于分布式文件存储的数据库,能够为 Web 应用提供可扩展的高性能数据存储解决方案。它介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的。
由于MongoDB没法像关系数据库那样实现自动递增ID序列,在此将在基于 Springboot 的框架下实现 MongoDB 的自动递增ID序列。
首先大致说明一下Demo需要准备的东西,以及项目的简易架构:
准备的东西:
- MongoDB,没有的话,自己去百度装一个吧~
- Springboot,因为快速部署的原因,这里默认就使用它来做,没有的,先自行准备一个
- Maven,本人爱好,你也可以用Gradle来构建项目
项目的架构:
- src/main/java
- ind.vijay.demo
- AutoIdDemoApplication.java -- 项目运行的常规入口
- util
- autoid
- SaveMongoEventListener.java -- 监听文档保存记录的Mongo事件监听器
- autoid
- entity
- AutoIdTestEntity.java -- 需要实现自增ID的 Entity 类
- SequenceId.java -- 集合ID记录专用集合类
- dao
- AutoIdTestDao.java -- AutoIdTestEntity的DAO层接口
- AutoIdTestDaoImpl.java -- DAO接口具体实现类
- annotation
- AutoIncrement.java -- 自增ID的注解
- ind.vijay.demo
- src/main/resources
- application.properties -- Springboot 的配置文件
- src/test/java
- ind.vijay.demo
- AutoIdDemoTest.java -- JUnit Test 类
- ind.vijay.demo
- pom.xml -- Maven 依赖包管理
打开mongodb的命令行,先创建一下使用的database和collection
对于项目的快速搭建,可以使用 https://start.spring.io/ 这个网站来快速生成,生成后导入到IDE中
接下来说说配置和依赖包:
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- dao层 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</a