一行代码即可使用MongoDB和Java实现CRUD


步骤1:创建一个新的Spring Boot项目 转到start.spring.io并创建一个具有以下依赖项的新项目:

  • Vaadin-用于在Web组件上构建Web应用程序的Java框架
  • Spring Data Mongo DB-将数据存储在类似JSON的文档中
  • Lombok(可选)-用于减少样板代码的Java注释库

下载并解压缩ZIP文件。提取的内容是一个Maven项目,您可以将其导入到您喜欢的IDE中。

将以下存储库和依赖项添加到您的pom.xml文件中:

<repository>
    <id>vaadin-addons</id>
    <url>https://maven.vaadin.com/vaadin-addons</url>
</repository>
<dependency>
    <groupId>org.vaadin.crudui</groupId>
    <artifactId>crudui</artifactId>
    <version>4.3.1</version>
</dependency>

步骤2:创建一个域类 创建一个新Student类,如下所示:

import lombok.*;
import org.springframework.data.annotation.Id;

@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
public class Student {
    @Id
    private Integer regNumber;
    private String firstName;
    private String lastName; 

}

步骤3:建立储存库介面 创建一个新的StudentRepository界面,如下所示:

import org.springframework.data.mongodb.repository.MongoRepository;
public interface StudentRepository extends MongoRepository<Student, Integer> {
}

步骤4:创建服务类 创建一个新StudentService类,如下所示:

import org.springframework.stereotype.Repository;
import org.vaadin.crudui.crud.CrudListener;
import java.util.Collection;

@Repository
public class StudentService implements CrudListener<Student> {

    private final StudentRepository repository;

    public StudentService(StudentRepository repository) {
        this.repository = repository;
    }

    @Override
    public Collection<Student> findAll() {
        return repository.findAll();
    }
    @Override
    public Student add(Student student) {
        return repository.insert(student);
    }

    @Override
    public Student update(Student student) {
        return repository.save(student);
    }

    @Override
    public void delete(Student student) {
        repository.delete(student);
    }

}

步骤5:实现一个视图类 创建一个新类,如下所示:

import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.Route;
import org.vaadin.crudui.crud.impl.GridCrud;
@Route("")
public class StudentsView extends VerticalLayout {
    public StudentsView(StudentService service) {
        GridCrud<Student> crud = new GridCrud<>(Student.class, service);
        add(crud);
        setSizeFull();
    }

}

请参见第9行。通过这一行,您将创建实际的CRUD Web UI组件。

步骤6:运行应用程序 确保MongoDB正在运行,并按如下所示启动应用程序:

`` mvn spring-boot:run

注意:首次运行该应用程序将比后续运行花费更多时间。

转到http:// localhost:8080并尝试该应用程序:

![05031.png](/media/images/qa/2021/02/26/ae2954a983-05031.png) 

**下一步**
您可以在application.properties文件中配置MongoDB连接字符串。例如:

spring.data.mongodb.uri=mongodb://localhost/test spring.data.mongodb.username=user spring.data.mongodb.password=password

您可以自定义CRUD组件。例如:

crud.getCrudFormFactory().setVisibleProperties("firstName", "lastName"); crud.getGrid().setColumns("firstName", "lastName"); ```


原文链接:http://codingdict.com