怎么在这基础上进行修改,将数据库操作封装到ORM类中。

已经用idea创建了三个类,分别是Main类,Student类,StudentManager类,
写出了一个学生管理系统,并连接了mysql数据库
怎么在这基础上进行修改,将数据库操作封装到ORM类中。
代码Main类


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) throws SQLException {
        StudentManager studentManager = new StudentManager();
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.println("请输入数字选择操作:");
            System.out.println("1. 添加学生");
            System.out.println("2. 删除学生");
            System.out.println("3. 更新学生信息");
            System.out.println("4. 查找学生");
            System.out.println("5. 打印所有学生信息");
            System.out.println("0. 退出程序");

            int choice = scanner.nextInt();
            switch (choice) {
                case 1:
                    System.out.println("请输入学生姓名:");
                    String name = scanner.next();
                    System.out.println("请输入学生性别:");
                    String gender = scanner.next();
                    System.out.println("请输入学生年龄:");
                    int age = scanner.nextInt();
                    System.out.println("请输入学生学号:");
                    String studentID = scanner.next();
                    Student newStudent = new Student(name, gender, age, studentID);
                    studentManager.addStudent(newStudent);
                    break;
                case 2:
                    System.out.println("请输入学生学号:");
                    String deleteID = scanner.next();
                    studentManager.deleteStudent(deleteID);
                    break;
                case 3:
                    System.out.println("请输入学生学号:");
                    String updateID = scanner.next();
                    System.out.println("请输入新的学生姓名:");
                    String newName = scanner.next();
                    System.out.println("请输入新的学生性别:");
                    String newGender = scanner.next();
                    System.out.println("请输入新的学生年龄:");
                    int newAge = scanner.nextInt();
                    System.out.println("请输入新的学生学号:");
                    String newStudentID = scanner.next();
                    Student newStudentInfo = new Student(newName, newGender, newAge, newStudentID);
                    studentManager.updateStudent(updateID, newStudentInfo);
                    break;
                case 4:
                    System.out.println("请输入学生学号:");
                    String findID = scanner.next();
                    Student foundStudent = studentManager.findStudent(findID);
                    if (foundStudent == null) {
                        System.out.println("未找到该学生!");
                    } else {
                        System.out.println(foundStudent);
                    }
                    break;
                case 5:
                    studentManager.printAllStudents();
                    break;
                case 0:
                    System.out.println("感谢使用学生管理系统!");
                    System.exit(0);
                    break;
                default:
                    System.out.println("输入无效,请重新输入!");
                    break;
            }
        }
    }
}


Student类


public class Student {
    private String name;
    private String gender;
    private int age;
    private String studentID;

    public Student(String name, String gender, int age, String studentID) {
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.studentID = studentID;
    }

    public String getName() {
        return name;
    }

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

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

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

    public String getStudentID() {
        return studentID;
    }

    public void setStudentID(String studentID) {
        this.studentID = studentID;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", gender='" + gender + '\'' +
                ", age=" + age +
                ", studentID='" + studentID + '\'' +
                '}';
    }
}

StudentManager 类

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class StudentManager {
    private List<Student> students = new ArrayList<>();
    private Connection conn;

    public StudentManager() {
        try {
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student_db", "root", "");
            ORM<Student> orm = new ORM<>(conn, "student_info");
            List<Student> studentList = orm.findAll();
            students.addAll(studentList);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void addStudent(Student student) {
        try {
            ORM<Student> orm = new ORM<>(conn, "student_info");
            orm.insert(student);
            students.add(student);
            System.out.println("添加学生成功!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void deleteStudent(String studentID) {
        try {
            ORM<Student> orm = new ORM<>(conn, "student_info");
            orm.delete("student_id", studentID);
            for (Student student : students) {
                if (student.getStudentID().equals(studentID)) {
                    students.remove(student);
                    System.out.println("删除学生成功!");
                    return;
                }
            }
            System.out.println("未找到该学生!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void updateStudent(String studentID, Student newStudent) {
        try {
            ORM<Student> orm = new ORM<>(conn, "student_info");
            orm.update("student_id", studentID, newStudent);
            for (int i = 0; i < students.size(); i++) {
                Student student = students.get(i);
                if (student.getStudentID().equals(studentID)) {
                    students.set(i, newStudent);
                    System.out.println("更新学生信息成功!");
                    return;
                }
            }
            System.out.println("未找到该学生!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public Student findStudent(String studentID) throws SQLException {
        for (Student student : students) {
            if (student.getStudentID().equals(studentID)) {
                return student;
            }
        }
        ORM<Student> orm = new ORM<>(conn, "student_info");
        List<Student> studentList = orm.findByColumn("student_id", studentID);
        if (studentList.size() > 0) {
            Student student = studentList.get(0);
            students.add(student);
            return student;
        }
        return null;
    }

    public void printAllStudents() {
        for (Student student : students) {
            System.out.println(student);
        }
    }
}