springboot操作mongodb增删改查
导jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
配置application.yml
spring:
data:
mongodb:
host: 192.168.128.130
database: studentdb
实体类就不写了
service层
package com.dl.springboot_mongo.service;
import com.dl.springboot_mongo.pojo.Student;
import java.util.List;
public interface StudentService {
/**
* 查询所有
* @return
*/
List<Student> findAll();
/**
* 根据ID查询
* @return
*/
Student findById(Long id);
/**
* 修改
* @return
*/
void modify(Student student);
/**
* 删除
* @return
*/
void del(Long id);
/**
* 新增
* @return
*/
void save(Student student);
/**
* 模糊查询
* @return
*/
List<Student> findAllmo(String name,String keyword);
}
实现层
package com.dl.springboot_mongo.service.serviceimlp;
import com.dl.springboot_mongo.pojo.Student;
import com.dl.springboot_mongo.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.regex.Pattern;
@Component
public class StudentServiceimlp implements StudentService {
@Autowired
private MongoTemplate mongoTemplate;
/**
* 查询所有
* @return
*/
@Override
public List<Student> findAll() {
return mongoTemplate.findAll(Student.class);
}
/**
* 根据ID查询
* @return
*/
@Override
public Student findById(Long id) {
return mongoTemplate.findById(id,Student.class);
}
/**
* 修改
* @return
*/
@Override
public void modify(Student student) {
Query query = new Query(Criteria.where("_id").is(student.getId()));
Update update = new Update();
update.set("name",student.getName());
update.set("sex",student.getSex());
update.set("age",student.getAge());
update.set("gradeId",student.getGradeId());
mongoTemplate.updateFirst(query,update,Student.class);
}
/**
* 删除
* @return
*/
@Override
public void del(Long id) {
Student ById=mongoTemplate.findById(id,Student.class);
mongoTemplate.remove(ById);
}
/**
* 新增
* @return
*/
@Override
public void save(Student student) {
mongoTemplate.save(student);
}
/**
* 模糊查询
* @return
*/
@Override
public List<Student> findAllmo(String name,String keyword) {
//完全匹配
Pattern pattern = Pattern.compile("^"+name+"$", Pattern.CASE_INSENSITIVE);
//右匹配
Pattern pattern1 = Pattern.compile("^.*"+name+"$", Pattern.CASE_INSENSITIVE);
//左匹配
Pattern pattern2 = Pattern.compile("^"+name+".*$", Pattern.CASE_INSENSITIVE);
//模糊匹配
Pattern pattern3 = Pattern.compile("^.*"+name+".*$", Pattern.CASE_INSENSITIVE);
Query query = Query.query(Criteria.where(name).regex(pattern));
return mongoTemplate.find(query,Student.class);
}
}
测试
package com.dl.springboot_mongo;
import com.dl.springboot_mongo.pojo.Grade;
import com.dl.springboot_mongo.pojo.Student;
import com.dl.springboot_mongo.service.GradeService;
import com.dl.springboot_mongo.service.StudentService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootMongoApplicationTests {
@Autowired
private StudentService studentService;
@Autowired
private GradeService gradeService;
@Test
public void contextLoads() {
}
/**
* Student查询集合所有
*/
@Test
public void findAll(){
List<Student> students= studentService.findAll();
System.out.println(students.size());
}
/**
* Student根据Id查询集合
*/
@Test
public void findById(){
Student student= studentService.findById((long) 1);
System.out.println(student.getName());
}
/**
* Student根据Id删除集合
*/
@Test
public void del(){
try {
studentService.del((long) 5);
}catch (Exception e){
e.printStackTrace();
}
}
/**
* Student新增
*/
@Test
public void save(){
Student student=new Student();
student.setId((long) 6);
student.setName("li");
student.setSex("女");
student.setAge((long) 18);
student.setGradeId((long) 2);
try{
studentService.save(student);
}catch (Exception e){
}
}
/**
* Student修改
*/
@Test
public void modify(){
Student student=new Student();
student.setId((long) 6);
student.setName("lii");
student.setSex("女");
student.setAge((long) 18);
student.setGradeId((long) 2);
studentService.modify(student);
}
/**
*Grade查询所有
*/
@Test
public void GradefindAll(){
List<Grade> grades=gradeService.findAll();
System.out.println(grades.size());
}
@Test
public void findAllmo(){
studentService.findAllmo("java","//");
}
}