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

初始化

可以使用idea来创建micronaut项目

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

选择依赖

目录结构

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<Student,Integer> {}

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<Student> 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<Student> 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<Student> deleteWithBody(@Body Student student) {
        // 通过roll获取指定student
        Optional<Student> studentByRoll = this.student.findById(student.getRoll());
        Student entity = studentByRoll.get();
        // 删除
        this.student.delete(entity);
        // 返回当前所有student
        return this.student.findAll();
    }
}

运行

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

添加

修改

获取

删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞鸟malred

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值