天天看點

SpringBoot操作MongoDB實作增删改查

SpringBoot操作MongoDB實作增删改查

本篇部落客講如何使用SpringBoot操作MongoDB。

(1)pom.xml引入依賴

<groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
           

(2)建立application.yml

spring:

data:

mongodb:
  host: 192.168.72.129
  database: studentdb
           

(3)建立實體類

建立包com.changan.mongodb,包下建包pojo 用于存放實體類,建立實體類

package com.changan.mongdb.pojo;

import org.springframework.data.annotation.Id;

import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;

@Document(collection = "student")

public class Student implements Serializable {

@Id
private Long id;

private String name;

private String sex;

private String age;

private String introduce;

public String getSex() {
    return sex;
}

public void setSex(String sex) {
    this.sex = sex;
}

public String getAge() {
    return age;
}

public void setAge(String age) {
    this.age = age;
}

public String getIntroduce() {
    return introduce;
}

public void setIntroduce(String introduce) {
    this.introduce = introduce;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}           

}

(4)建立資料通路接口

com.changan.mongodb包下建立dao包,包下建立接口

package com.changan.mongdb.dao;

import com.changan.mongdb.pojo.Student;

import java.util.List;

import java.util.Map;

public interface StudentDao {

void save(Student student);

void update(Student student);

List<Student> findAll();

void delete(Integer id);           

(5)建立業務邏輯類

com.changan.mongodb包下建立impl包,包下建立類

package com.changan.mongdb.dao.impl;

import com.changan.mongdb.dao.StudentDao;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.mongodb.core.MongoTemplate;

import org.springframework.data.mongodb.core.aggregation.Aggregation;

import org.springframework.data.mongodb.core.aggregation.LookupOperation;

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;

@Component

public class StudentDaoImpl implements StudentDao {

@Autowired
private MongoTemplate mongoTemplate;

/**
 * 新增資訊
 * @param student
 */
@Override
public void save(Student student) {
    mongoTemplate.save(student);
}

/**
 * 修改資訊
 * @param student
 */
@Override
public void update(Student student) {
    //修改的條件
    Query query = new Query(Criteria.where("id").is(student.getId()));

    //修改的内容
    Update update = new Update();
    update.set("name",student.getName());

    mongoTemplate.updateFirst(query,update,Student.class);
}

/**
 * 查詢所有資訊
 * @return
 */
@Override
public List<Student> findAll() {
    return mongoTemplate.findAll(Student.class);
}

/**
 * 根據id查詢所有資訊
 * @param id
 */
@Override
public void delete(Integer id) {
    Student byId = mongoTemplate.findById(1,Student.class);
    mongoTemplate.remove(byId);
}
           

(6)建立測試類

package com.changan.mongdb;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)

@SpringBootTest

public class MongdbApplicationTests {

@Autowired
private StudentDao studentDao;

/**
 * 查詢所有資訊
 */
@Test
public void findAll() {
    List<Student> all = studentDao.findAll();
    System.out.println(all.size());
}

/**
 * 新增資訊
 */
@Test
public void save() {
    Student student = new Student();
    student.setId(6l);
    student.setName("宋人頭");
    studentDao.save(student);
}

/**
 * 修改資訊
 */
@Test
public void update() {
    Student student = new Student();
    student.setId(2l);
    student.setName("吳很帥");
    studentDao.update(student);
}

/**
 * 删除資訊
 */
@Test
public void delete() {
    studentDao.delete(3);
}           

作者:丢了微笑該如何釋懷

來源:CSDN

原文:

https://blog.csdn.net/weixin_42236165/article/details/91884029

版權聲明:本文為部落客原創文章,轉載請附上博文連結!