micronaut-学生管理系统(结合h2数据库)

初始化

可以使用idea来创建micronaut项目

micronaut-学生管理系统(结合h2数据库)_第1张图片

也可以从 Micronaut Launch选择需要的依赖并下载其模板

micronaut-学生管理系统(结合h2数据库)_第2张图片

选择依赖

micronaut-学生管理系统(结合h2数据库)_第3张图片

目录结构

micronaut-学生管理系统(结合h2数据库)_第4张图片

model

package org.malred.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student {
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Integer roll; 

    private String firstName;
    private String lastName;
    private Integer standard;
}

repository

repository继承CrudRepository<实体类,主键数据类型>, 可以使用jpa定义好的crud操作
package org.malred.repository;

import io.micronaut.data.annotation.Repository;
import io.micronaut.data.repository.CrudRepository;
import org.malred.model.Student;

@Repository
public interface StudentRepository extends CrudRepository {}

controller

package org.malred.controller;

import io.micronaut.http.annotation.*;
import lombok.RequiredArgsConstructor;
import org.malred.model.Student;
import org.malred.repository.StudentRepository;

import java.util.Optional;

@Controller(value = "/student")
@RequiredArgsConstructor // lombok提供的,代替@AutoWired,但是属性需要用final定义
public class StudentController {
    private final StudentRepository student;

    // 返回所有student 
    @Get("/all")
    public Iterable all() {
        return student.findAll();
    }

    // 创建
    @Post("/create")
    public Student createWithBody(@Body Student student) {
        return this.student.save(student);
    }

    // 修改(传递json对象,包含字段roll(主键))
    @Put("/update")
    public Student updateWithBody(@Body Student student) {
        // 通过roll获取指定student
        Optional studentByRoll = this.student.findById(student.getRoll());
        Student entity = studentByRoll.get();
        // 修改
        entity.setFirstName(student.getFirstName());
        entity.setLastName(student.getLastName());
        entity.setStandard(student.getStandard());
        // 修改h2数据库里保存的数据
        return this.student.update(entity);
    }

    // 删除(传递json对象,包含字段roll(主键))
    @Delete("/delete")
    public Iterable deleteWithBody(@Body Student student) {
        // 通过roll获取指定student
        Optional studentByRoll = this.student.findById(student.getRoll());
        Student entity = studentByRoll.get();
        // 删除
        this.student.delete(entity);
        // 返回当前所有student
        return this.student.findAll();
    }
}

运行

可以在根目录的命令行里使用命令运行
mvnw mn:run
或者直接idea运行

micronaut-学生管理系统(结合h2数据库)_第5张图片

添加

micronaut-学生管理系统(结合h2数据库)_第6张图片

修改

micronaut-学生管理系统(结合h2数据库)_第7张图片

获取

micronaut-学生管理系统(结合h2数据库)_第8张图片

删除

micronaut-学生管理系统(结合h2数据库)_第9张图片

你可能感兴趣的:(数据库,java,intellij-idea,micronaut)