1、环境搭建 步骤一:修改pom文件,更新依赖 org.springframework.boot spring-boot-starter-data-mongoDB org.projectlombok lombok
步骤一:修改pom文件,更新依赖
org.springframework.boot
spring-boot-starter-data-mongoDB
org.projectlombok
lombok
spring:
data:
mongodb:
uri: mongodb://root:1234@localhost:27017/admin
步骤三:编写 JavaBean,配置文档对应集合
package com.tqyl.domain;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
@Data
@Document(collection = "teacher")
public class Teacher {
@Id
private String teacherId;
@Field("username")
private String username;
private String passWord;
private Integer age;
public Teacher() {
}
public Teacher(String teacherId, String username, String password, Integer age) {
this.teacherId = teacherId;
this.username = username;
this.password = password;
this.age = age;
}
}
步骤四:编写 dao,继承MongoRepository
package com.tqyl.dao;
import com.tqyl.domain.Teacher;
import org.springframework.data.mongodb.repository.MongoRepository;
import java.util.List;
public interface TeacherDao extends MongoRepository {
public List findByUsername(String username);
}
步骤五:编写启动类,使用@ComponentScan扫描 dao
package com.tqyl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan(basePackages = "com.tqyl.dao")
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class,args);
}
}
步骤六:编写测试类,获得 dao 实现类
@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestApplication.class)
public class TestRepository {
@Resource
private TeacherDao teacherDao;
}
@Test
public void testFindAll(){
//查询
List list = teacherDao.findAll();
System.out.println(list);
}
@Test
public void testDemo01(){
//排序
//List list = teacherRepository.findAll(Sort.by("password"));
List list = teacherDao.findAll(Sort.by(Sort.Order.desc("password")));
for (Teacher teacher : list) {
System.out.println(teacher);
}
}
@Test
public void testDemo02(){
//分页
int page = 0; //从0开始
int size = 2;
Page teacherPage = teacherDao.findAll(PageRequest.of(page, size));
//处理分页数据
//1 获得分页内容
List list = teacherPage.getContent();
//2 获得总记录数
long total = teacherPage.getTotalElements();
System.out.println("总条数:" + total);
for (Teacher teacher : list) {
System.out.println(teacher);
}
}
@Test
public void testDemo03() {
//分页
int page = 0; //从0开始
int size = 2;
Page teacherPage = teacherDao.findAll(PageRequest.of(page, size));
//遍历数据
// JDK8提供forEach,使用箭头函数进行遍历
teacherPage.forEach(teacher -> System.out.println(teacher) );
// 打印简化版
teacherPage.forEach(System.out::println);
}
@Test
public void testDemo04(){
//准备数据
Teacher teacher = new Teacher();
teacher.setUsername("王五");
teacher.setPassword("666777");
teacher.setAge(30);
//插入数据
teacherDao.insert( teacher );
}
@Test
public void testDemo05(){
//通过id查询
Optional optional = teacherDao.findById("5ee83ccf9d1c6904d8768ca8");
//Optional 用于统一规范空指针异常处理
if(optional.isPresent()){ // teacher != null
Teacher teacher = optional.get();
System.out.println(teacher);
} else {
System.out.println("没有数据");
}
}
@Test
public void testDemo06(){
//更新操作
//1 查询
Optional optional = teacherDao.findById("5ee83ccf9d1c6904d8768ca8");
if(optional.isPresent()) {
//2 修改数据
Teacher teacher = optional.get();
teacher.setUsername("王武");
//3 更新
teacherDao.save(teacher);
}
}
@Test
public void testDemo07(){
//删除
teacherDao.deleteById("5ee83ccf9d1c6904d8768ca8");
}
public List findByUsername(String username);
@Test
public void testDemo08(){
//自定义查询
List list = teacherRepository.findByUsername("tom");
System.out.println(list);
}
--结束END--
本文标题: MongoDB学习(四) --- MongoDB 整合Spring Data
本文链接: https://www.lsjlt.com/news/6692.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-16
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0