在IDEA里面使用新建一个maven项目,
项目的结构是如图所示:(注意:springboot 项目中所有的组件必须位于application同级或者子包下才会被扫描到,不然就会报上面的错!)
导入相关的jar包
1、加入jar包依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
2、在resource文件夹目录下新建application.properites文件
spring.data.mongodb.uri= mongodb://localhost:27017/ceshi
3、新建model下面的类
下面新建的类里面的get,set,toString方法自己加一下呀,这边就不展示了
(1)、Person实体类
public class Person implements Serializable {
@Id
private long personId;
private String name;
private String address;
private int age;
private TypeEnum type;
}
(2)、Teacher实体类
public class Teacher extends Person {
private String likeStudent;
private String teacheCourse;
}
(3)、Student实体类
public class Student extends Person {
private String likeSport;
private String likeBook;
private String school;
}
(4)、TypeEnum枚举类
public enum TypeEnum {
STUDENT("student", "学生"),TEACHER("teacher", "教师");
private final String value;
private final String text;
public String getValue() {
return value;
}
public String getText() {
return text;
}
TypeEnum(String value, String text) {
this.value = value;
this.text = text;
}
}
4、继承MongoRepository的接口
MongoRepository继承了这个接口可以发现没有更新的方法,所以后面的文章将使用MongoTemplate、MongoOperations来操作是数据库。
repository支持了简单的查询和新增、删除。使用spring data的方法不用实现接口,直接 根据方法名,或者自定义的条件Query来操作。
(1)、StudentRepository
package com.mongodb.demo.repository;
import com.mongodb.demo.model.Student;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframe