Java代码

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

public class StudentManagementSystem {
    private static ArrayList<Student> students = new ArrayList<>();
    private static Scanner scanner = new Scanner(System.in);
    private static Connection conn;

    public static void main(String[] args) {
        try {
            // 连接数据库
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student_management_system", "root", "password");
            System.out.println("成功连接数据库!");
        } catch (SQLException e) {
            System.out.println("连接数据库失败!");
            e.printStackTrace();
            return;
        }

        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 0:
                    System.out.println("感谢使用本系统!");
                    return;
                case 1:
                    addStudent();
                    break;
                case 2:
                    deleteStudent();
                    break;
                case 3:
                    updateStudent();
                    break;
                case 4:
                    searchStudent();
                    break;
                case 5:
                    showAllStudents();
                    break;
                default:
                    System.out.println("输入的选项不正确,请重新输入!");
                    break;
            }
        }
    }

    private static void addStudent() {
        System.out.print("请输入学生姓名:");
        String name = scanner.next();
        System.out.print("请输入学生年龄:");
        int age = scanner.nextInt();
        System.out.print("请输入学生性别(男/女):");
        String gender = scanner.next();
        System.out.print("请输入学生班级:");
        String className = scanner.next();
        Student student = new Student(name, age, gender, className);
        String sql = "INSERT INTO students (name, age, gender, class_name) VALUES (?, ?, ?, ?)";
        try {
            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.setString(1, student.getName());
            stmt.setInt(2, student.getAge());
            stmt.setString(3, student.getGender());
            stmt.setString(4, student.getClassName());
            int rows = stmt.executeUpdate();
            if (rows == 1) {
                students.add(student);
                System.out.println("添加学生成功!");
            } else {
                System.out.println("添加学生失败!");
            }
        } catch (SQLException e) {
            System.out.println("添加学生失败!");
            e.printStackTrace();
        }
    }

    private static void deleteStudent() {
        System.out.print("请输入要删除的学生姓名:");
        String name = scanner.next();
        String sql = "DELETE FROM students WHERE name = ?";
        try {
            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.setString(1, name);
            int rows = stmt.executeUpdate();
            if (rows == 1) {
                for (int i = 0; i < students.size(); i++) {
                    Student student = students.get(i);
                    if (student.getName().equals(name)) {
                        students.remove(i);
                        break;
                    }
                }
                System.out.println("删除学生成功!");
            } else {
                System.out.println("删除学生失败!");
            }
        } catch (SQLException e) {
            System.out.println("删除学生失败!");
            e.printStackTrace();
        }
    }

    private static void updateStudent() {
        System.out.print("请输入要修改的学生姓名:");
        String name = scanner.next();
        String sql = "SELECT * FROM students WHERE name = ?";
        try {
            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.setString(1, name);
            ResultSet rs = stmt.executeQuery();
            if (rs.next()) {
                System.out.print("请输入修改后的学生姓名:");
                String newName = scanner.next();
                System.out.print("请输入修改后的学生年龄:");
                int newAge = scanner.nextInt();
                System.out.print("请输入修改后的学生性别(男/女):");
                String newGender = scanner.next();
                System.out.print("请输入修改后的学生班级:");
                String newClassName = scanner.next();
                sql = "UPDATE students SET name = ?, age = ?, gender = ?, class_name = ? WHERE name = ?";
                stmt = conn.prepareStatement(sql);
                stmt.setString(1, newName);
                stmt.setInt(2, newAge);
                stmt.setString(3, newGender);
                stmt.setString(4, newClassName);
                stmt.setString(5, name);
                int rows = stmt.executeUpdate();
                if (rows == 1) {
                    for (int i = 0; i < students.size(); i++) {
                        Student student = students.get(i);
                        if (student.getName().equals(name)) {
                            student.setName(newName);
                            student.setAge(newAge);
                            student.setGender(newGender);
                            student.setClassName(newClassName);
                            break;
                        }
                    }
                    System.out.println("修改学生信息成功!");
                } else {
                    System.out.println("修改学生信息失败!");
                }
            } else {
                System.out.println("没有找到该学生,请重新输入!");
            }
        } catch (SQLException e) {
            System.out.println("修改学生信息失败!");
            e.printStackTrace();
        }
    }

    private static void searchStudent() {
        System.out.print("请输入要查询的学生姓名:");
        String name = scanner.next();
        String sql = "SELECT * FROM students WHERE name = ?";
        try {
            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.setString(1, name);
            ResultSet rs = stmt.executeQuery();
            if (rs.next()) {
                System.out.println("姓名:" + rs.getString("name") +
                                   " 年龄:" + rs.getInt("age") +
                                   " 性别:" + rs.getString("gender") +
                                   " 班级:" + rs.getString("class_name"));
            } else {
                System.out.println("没有找到该学生,请重新输入!");
            }
        } catch (SQLException e) {
            System.out.println("查询学生信息失败!");
            e.printStackTrace();
        }
    }

    private static void showAllStudents() {
        String sql = "SELECT * FROM students";
        try {
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                Student student = new Student(rs.getString("name"), rs.getInt("age"), rs.getString("gender"), rs.getString("class_name"));
                students.add(student);
                System.out.println("姓名:" + student.getName() +
                                   " 年龄:" + student.getAge() +
                                   " 性别:" + student.getGender() +
                                   " 班级:" + student.getClassName());
            }
            if (students.size() == 0) {
                System.out.println("没有学生信息!");
            }
        } catch (SQLException e) {
            System.out.println("显示所有学生信息失败!");
            e.printStackTrace();
        }
    }
}

class Student {
    private String name;
    private int age;
    private String gender;
    private String className;

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

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public String getGender() {
        return gender;
    }

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

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }
}

数据库 表 sql

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    age INT NOT NULL,
    gender VARCHAR(2) NOT NULL,
    class_name VARCHAR(20) NOT NULL
);

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐