塞提亚 2023-04-01 20:06 采纳率: 44.4%
浏览 52
已结题

模拟完成单表数据库的CRUD

  1. 创建一个学生类,至少6个属性
  2. 使用静态的HashMap来存储学生信息
    1. key:学号
    2. 值:学生对象
  3. 在Controller定义静态代码块 完成学生列表信息的初始化【10个学生】
  4. 在Controller定义5个方法【Handler】
    • 查询所有学生【无参数】
    • 根据学号查询学生【整形参数,使用路径传参】
    • 更新学生【需要先回显原先的数据】【参数为json,需要带学号】
    • 增加学生【参数为json,不需要带学号(使用自增)】
    • 根据学号删除学生【整形参数,使用路径传参】
  5. Controller
    1. Handler返回值为统一Result
    2. 请求参数一律使用json
  • 写回答

1条回答 默认 最新

  • 李高飞 2023-04-01 20:27
    关注

    以下是一个简单的Java实现,完成单表数据库的CRUD操作,使用静态的HashMap来存储学生信息。假设学生类中有六个属性:学号、姓名、性别、年龄、专业、成绩。

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class StudentController {
        private static Map<Integer, Student> studentMap = new HashMap<>();
        
        // 初始化学生列表信息
        static {
            for (int i = 1; i <= 10; i++) {
                Student student = new Student(i, "学生" + i, i % 2 == 0 ? "男" : "女", 18 + i, "专业" + i, i * 10);
                studentMap.put(i, student);
            }
        }
        
        // 查询所有学生
        public static Result findAllStudents() {
            List<Student> students = new ArrayList<>(studentMap.values());
            return new Result(true, "查询成功", students);
        }
        
        // 根据学号查询学生
        public static Result findStudentById(int id) {
            if (studentMap.containsKey(id)) {
                Student student = studentMap.get(id);
                return new Result(true, "查询成功", student);
            } else {
                return new Result(false, "查询失败,学生不存在", null);
            }
        }
        
        // 更新学生
        public static Result updateStudent(Student student) {
            if (studentMap.containsKey(student.getId())) {
                studentMap.put(student.getId(), student);
                return new Result(true, "更新成功", student);
            } else {
                return new Result(false, "更新失败,学生不存在", null);
            }
        }
        
        // 增加学生
        public static Result addStudent(Student student) {
            int id = studentMap.size() + 1;
            student.setId(id);
            studentMap.put(id, student);
            return new Result(true, "增加成功", student);
        }
        
        // 根据学号删除学生
        public static Result deleteStudentById(int id) {
            if (studentMap.containsKey(id)) {
                Student student = studentMap.remove(id);
                return new Result(true, "删除成功", student);
            } else {
                return new Result(false, "删除失败,学生不存在", null);
            }
        }
    }
    
    
    

    其中,Student类的代码如下:

    public class Student {
        private int id;
        private String name;
        private String gender;
        private int age;
        private String major;
        private int score;
        
        public Student(int id, String name, String gender, int age, String major, int score) {
            this.id = id;
            this.name = name;
            this.gender = gender;
            this.age = age;
            this.major = major;
            this.score = score;
        }
        
        // 省略getter和setter方法
    }
    
    
    

    使用Ajax请求来调用上述Controller的方法。假设项目使用Spring框架,可使用如下的RequestMapping注解来定义Ajax请求的方法:

    import org.springframework.web.bind.annotation.*;
    
    @RestController
    @RequestMapping("/student")
    public class StudentController {
        // 查询所有学生
        @GetMapping("/findAll")
        public Result findAllStudents() {
            return StudentController.findAllStudents();
        }
        
        // 根据学号查询学生
        @GetMapping("/{id}")
        public Result findStudentById(@PathVariable int id) {
    
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月1日
  • 创建了问题 4月1日

悬赏问题

  • ¥15 HTML5的section文字占地问题
  • ¥15 这个结构体为什么会出错呢?
  • ¥15 ROH绘图及近交系数的计算
  • ¥15 手动下载基因拼接数据库的渠道
  • ¥30 微机原理相关问题,求解
  • ¥15 多种类数据输入的语义分割模型方法有吗
  • ¥15 cesium二维地图绘制实体rectangle颜色问题
  • ¥15 网络分析仪面板参数解释
  • ¥15 车载image sensor的 datasheet
  • ¥15 kotlin multiplaform 的共享模块支持蓝牙吗还是说安卓和ios的蓝牙都要自己配