java课程设计(学生信息管理系统设计)+数据库

news2024/11/16 13:43:29

🔍 🔎 本期带领大家一起来学习java课程设计(学生信息管理系统设计)+数据库的实现思路 🔍 🔎

文章目录

    • 题目要求+数据库🌍
    • 一 、环境搭建🌍
    • 二 、功能实现 🌎 🌍
      • 1.学生信息类的创建✅
      • 2.学生信息的添加功能✅✅
      • 3.学生信息的删除功能✅✅✅
      • 4.学生信息的修改功能 ✅✅✅✅
      • 5.学生信息的查看功能✅✅✅✅✅
    • 三、主类的调用🌍 🌎 🌏
      • 1、 登录界面🛸
      • 2、 界面搭建🛸🛸
    • 四、 Extents的相关善后操作🌎 🌏 🌎 🌏
    • 五、 数据库的连接🌍 🌎🌏 🌍 🌎 🌏
    • 六 、感谢与交流🌍 🌎 🌏 🌍 🌎 🌏

题目要求+数据库🌍

学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计学生信息管理系统,使之能提供以下功能:
1、系统以菜单方式工作
2、学生信息录入功能--输入
3、学生信息浏览功能--输出
4、学生信息查询功能--算法
按学号查询
按姓名查询
5、学生信息的删除与修改(可选项)

在这里插入图片描述
在这里插入图片描述

一 、环境搭建🌍

在idea创建一个工程文件,在工程文件下创建一个model模块,在model模块下创建一个classSystem包,然后再存放对应的类,如下图所示
在这里插入图片描述
需要注意是因为连接了数据库,所以需要导入相应的jar包

二 、功能实现 🌎 🌍

1.学生信息类的创建✅

首先实现这个学生信息管理系统,我们需要先创建一个学生信息类
,包括学生的学号,姓名,年龄,地址,电话,邮箱,出生日期,具体代码如下✈️ 🛫 🛬

package classSystem;


public class Student {
    private int stuId;
    private String name;
    private int age;

    private String sex;
    private String birth;

    private String address;
    private String tel;
    private String Email;


    public Student() {
    }

    public Student(int stuId, String name, int age, String sex, String birth, String address, String tel, String email) {
        this.stuId = stuId;
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.birth = birth;
        this.address = address;
        this.tel = tel;
        Email = email;
    }

    public int getStuId() {
        return stuId;
    }

    public void setStuId(int stuId) {
        this.stuId = stuId;
    }

    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 getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getBirth() {
        return birth;
    }

    public void setBirth(String birth) {
        this.birth = birth;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String getEmail() {
        return Email;
    }

    public void setEmail(String email) {
        Email = email;
    }
}


2.学生信息的添加功能✅✅

🔍 🔎因为这个学生信息管理系统的java程序是连接了数据库,所以我们在录入我们的信息的时候,需要讲我们所录入的学生信息存放到数据库当中,所以我们需要运用到sql语句
去添加我们所录入的信息,做到了随时随地可以查询,更好地管理我们的学生信息🔍 🔎

public static void addStu(ArrayList<Student> stu) throws AWTException {
        while (true) {
            Extents.clearConsole();
            System.out.println(">首界面>功能界面>添加学生信息\n\n");
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入学生学号(例:2022): ");
            int stuId=sc.nextInt();
            System.out.print("请输入学生姓名(例:张三): ");
            String name = sc.next();
            System.out.print("请输入学生年龄(例:18): ");
            int age = sc.nextInt();
            System.out.print("请输入学生性别(例:男): ");
            String sex =sc.next();
            System.out.print("请输入学生出生日期(例:2004-6-1): ");
            String birth =sc.next();
            System.out.print("请输入学生电话(例:123456): ");
            String tel=sc.next();
            System.out.print("请输入学生email(例:123456@qq.com): ");
            String emial =sc.next();
            System.out.print("请输入学生地址(例:深圳): ");
            String address = sc.next();

            System.out.println("\n\n-----------------------------------------------------");
            System.out.println( "\t\t学号: "+stuId+"\t\t姓名: " + name + "\t\t年龄: " + age + "\t\t地址: " + address
            +"\t\t性别: " +sex+"\t\t出生日期: " +birth+"\t\t地址: " +address+"\t\t电话: " +tel+"\t\t邮箱: " +emial);
            System.out.print("\n\n是否添加该学生信息? [Yes(1) / No(0)] :");
            Extents.isAdd(stu, sc, stuId,sex,birth,tel,emial, name, age, address);
            System.out.println("\n\n\n>首界面>功能界面>添加学生信息\n");
            System.out.println("\t                继续添加                   请输入1               ");
            System.out.println();
            System.out.println("\t                返回上级                   请输入0               ");
            System.out.println("\t ---------------------------------------------------------------");
            System.out.print("\n请输入您的选择:");
            while (true) {
                int choose = sc.nextInt();
                if (choose == 1) {
                    break;
                } else if (choose == 0) {
                    Extents.clearConsole();
                    return;
                } else {
                    System.out.print("看清选项! 再给你一次机会: ");
                }
            }
        }
    }

public static void isAdd(ArrayList<Student> stu, Scanner sc,int stuId ,String sex,String birth,String tel,String email, String name, int age, String address) throws AWTException {
        while (true) {
            int is = sc.nextInt();
            if (is == 0) {
                Extents.clearConsole();
                System.out.println("取消成功!");
                break;
            } else if (is == 1) {
                /*Student s = new Student(stuId,name, age,sex,birth, address,tel,email);
                stu.add(s);*/
                Connection connection =null;

                String sql ="insert into Student values(?,?,?,?,?,?,?,?)";
                PreparedStatement preparedStatement=null;
                try {

                    connection  = jdbcUtiles.getConnection();
                    preparedStatement = connection.prepareStatement(sql);

                   preparedStatement.setInt(1,stuId);
                   preparedStatement.setString(2,name);
                   preparedStatement.setInt(3,age);
                   preparedStatement.setString(4,sex);
                   preparedStatement.setString(5,address);
                   preparedStatement.setString(6,birth);
                   preparedStatement.setString(7,tel);
                   preparedStatement.setString(8,email);

                    //执行
                    preparedStatement.executeUpdate();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }finally {
                    jdbcUtiles.close(null,preparedStatement,connection);
                }


                stuId += 1;
                Extents.clearConsole();
                System.out.println("添加信息成功!\n\n");
                FunctionalBlock.showStu(stu);
                break;
            }
            System.out.print("\n输入错误!请重新输入:");
        }
    }

相信大家看到这里会有点迷惑,那么现在我来梳理一下增加信息代码块的实现逻辑
首先我们先在FunctionalBlock当中的addStudan当中录入我们的信息🔑 🔑
然后再调用我们Extens当中的isAdd判断是否录入我们的信息
如果录入信息的话,使用sql语句进行与数据库的连接,并且将信息录入到数据库当中
并且会查询数据库当中的信息🔍 🔎
如果不录入信息的话,那么就取消录入

增加学生信息效果图如下
在这里插入图片描述
在这里插入图片描述

3.学生信息的删除功能✅✅✅

学生信息的删除功能的实现,先调用FunctionalBlock
当中的showStu的方法展示全部学生的信息💡💡
再选择需要删除的学生信息💡💡
同样先要判断所输入的学号是=是否存在,用到了Extents当中的getFlag的方法
如果不存在,则返回-1,存在的话则进行删除操作
同样用到了sql语句与数据库当中的学生信息进行了交互🔑

public static void deleteStu(ArrayList<Student> stu) throws AWTException {
        Scanner sc = new Scanner(System.in);
        showStu(stu);
        while (true) {
            System.out.print("\n请输入要删除的学生学号:");
            int sid = sc.nextInt();
            sc.nextLine();
            int flag = Extents.getFlag(stu, sid);
            if (flag == -1) {
                System.out.print("\n该学号不存在,请重新输入\n");
            } else {
                System.out.print("\n是否删除学号为:" + sid + " 的学生信息? [Yes(1) / No(0)] :");
                Extents.isDlete(stu, sc, flag);
                System.out.println("\n\n\n>首界面>功能界面>删除学生信息\n");
                System.out.println("\t                继续删除                   请输入1                ");
                System.out.println();
                System.out.println("\t                返回上级                   请输入0                ");
                System.out.println("\t ----------------------------------------------------------------");
                System.out.print("\n请输入您的选择: ");
                while (true) {
                    int choose = sc.nextInt();
                    if (choose == 1) {
                        break;
                    } else if (choose == 0) {
                        Extents.clearConsole();
                        return;
                    } else {
                        System.out.print("看清选项! 再给你一次机会: ");
                    }
                }
            }
        }
    }

删除学生信息效果图如下

在这里插入图片描述

4.学生信息的修改功能 ✅✅✅✅

修改学生信息的功能呢,和上面删除学生信息 功能的实现类似,我们同样来看看如何实现的
学生信息的修改功能的实现,先调用FunctionalBlock当中的showStu的方法展示全部学生的信息
再选择需要修改的学生学号⌛️ ⏳⌛️ ⏳
同样先要判断所输入的学号是=是否存在,用到了Extents当中的getFlag的方法
如果不存在,则返回-1,存在的话则进行修改操作
再然后输入修改之后的学生信息💡💡
同样用到了sql语句与数据库当中的学生信息进行了交互

 public static void updateStu(ArrayList<Student> stu) throws AWTException {
        Scanner sc = new Scanner(System.in);
        while (true) {
            showStu(stu);
            System.out.print("\n\n请输入要修改信息的学生学号:");
            int sidUpdate = sc.nextInt();
            int flag = Extents.getFlag(stu, sidUpdate);
            Extents.clearConsole();
            if (flag == -1) {
                System.out.print("该学号不存在,请重新输入\n\n\n ");
            } else {
                System.out.println(">首界面>功能界面>修改学生信息\n\n");
                System.out.print("请输入学生学号(例:2022: ");
                int id=sc.nextInt();
                System.out.print("请输入学生姓名(例:张三): ");
                String name = sc.next();
                System.out.print("请输入学生年龄(例:18): ");
                int age = sc.nextInt();
                System.out.print("请输入学生性别(例:男): ");
                String sex =sc.next();
                System.out.print("请输入学生出生日期(例:2004-6-1): ");
                String birth =sc.next();
                System.out.print("请输入学生电话(例:123456): ");
                String tel=sc.next();
                System.out.print("请输入学生email(例:123456@qq.com): ");
                String emial =sc.next();
                System.out.print("请输入学生地址(例:深圳): ");
                String address = sc.next();
                Extents.clearConsole();
                Extents.getFlag(stu, sidUpdate);


                Connection connection =null;
                String sql ="update Student set stuId=? ,name=?,age=?,sex=?,adress=?,birth=?,tel=?,Email=?where stuId=?";
                PreparedStatement preparedStatement=null;
                try {
                    connection  = jdbcUtiles.getConnection();
                    preparedStatement = connection.prepareStatement(sql);
                    preparedStatement.setInt(1,id);
                    preparedStatement.setString(2,name);
                    preparedStatement.setInt(3,age);
                    preparedStatement.setString(4,sex);
                    preparedStatement.setString(5,address);
                    preparedStatement.setString(6,birth);
                    preparedStatement.setString(7,tel);
                    preparedStatement.setString(8,emial);
                    preparedStatement.setInt(9,flag);

                    //执行
                    preparedStatement.executeUpdate();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }finally {
                    jdbcUtiles.close(null,preparedStatement,connection);
                }




                System.out.println(">首界面>功能界面>修改学生信息");
                System.out.println("\n\n------------------------------------------------------------------");

                System.out.println("修改后——>\n");
                System.out.println( "\t\t姓名: " + name + "\t\t年龄: " + age + "\t\t地址: " + address
                        +"\t\t性别: " +sex+"\t\t出生日期: " +birth+"\t\t地址: " +address+"\t\t电话: " +tel+"\t\t邮箱: " +emial);
                System.out.print("\n\n是否修改该学生信息? [Yes(1) / No(0)] :");
                Extents.isUpdata(stu, sc, sidUpdate, flag,sex,birth,tel,emial, name, age, address);
                System.out.println("\n\n\n>首界面>功能界面>修改学生信息\n");
                System.out.println("\t                继续修改                   请输入1              ");
                System.out.println();
                System.out.println("\t                返回上级                   请输入0              ");
                System.out.println("\t --------------------------------------------------------------");
                System.out.print("\n请输入您的选择:");
                while (true) {
                    int choose = sc.nextInt();
                    if (choose == 1) {
                        Extents.clearConsole();
                        break;
                    } else if (choose == 0) {
                        Extents.clearConsole();
                        return;
                    } else {
                        System.out.print("看清选项! 再给你一次机会: ");
                    }
                }
            }
        }
    }

修改学生信息效果图如下
在这里插入图片描述

5.学生信息的查看功能✅✅✅✅✅

由于查看学生信息的功能在前面三个功能当中都有调用⌛️ ⏳⌛️ ⏳
所以我们为了使得代码更加简洁,将查询学生信息的功能封装起来了
避免了代码的冗余
同样我们来看看到底是如何实现的
因为我们的程序是连接了数据库,所以我们需要查询学生的信息的时候⌛️ ⏳⌛️ ⏳
需要用到查询的sql语句进行查询,同我们的数据库进行交互

 public static void showStu(ArrayList<Student> stu) {

        System.out.println("1.按学号查询");
        System.out.println("2.按姓名查询");
        System.out.println("3.查询全部 ");
        Scanner sc =new Scanner(System.in);
        int input=sc.nextInt();
        if(input==1){
            System.out.print("输入需要查询的学生学号:");
            int stuid=sc.nextInt();

            Connection connection =null;
            String sql="select stuId,name,age,sex,adress,birth,tel,Email from Student where stuId=?";
            PreparedStatement preparedStatement=null;
            ResultSet set=null;
            try {
                connection  = jdbcUtiles.getConnection();
                preparedStatement = connection.prepareStatement(sql);

                preparedStatement.setInt(1,stuid);
                //执行
                set = preparedStatement.executeQuery();

                while(set.next()){
                    int id=set.getInt("stuId");
                    String name=set.getString("name");
                    int age =set.getInt("age");
                    String sex =set.getString("sex");
                    String address=set.getString("adress");
                    String birth=set.getString("birth");
                    String tel=set.getString("tel");
                    String email=set.getString("Email");

                    System.out.println("\t\t" + id + " \t\t\t" + name
                            + " \t\t\t" + age + " \t\t\t" + sex +" \t\t\t" + address +
                            " \t\t\t" + birth+ " \t\t\t" + tel +" \t\t\t" + email +
                            "  \t\t\t"  + "\n");
                }
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }finally {
                jdbcUtiles.close(set,preparedStatement,connection);
            }

        } else if (input==2) {


            System.out.print("输入需要查询的学生名字:");
            String stuname=sc.next();

            Connection connection =null;
            String sql="select stuId,name,age,sex,adress,birth,tel,Email from Student where name=?";
            PreparedStatement preparedStatement=null;
            ResultSet set=null;
            try {
                connection  = jdbcUtiles.getConnection();
                preparedStatement = connection.prepareStatement(sql);

                preparedStatement.setString(1,stuname);
                //执行
                set = preparedStatement.executeQuery();

                while(set.next()){
                    int id=set.getInt("stuId");
                    String name=set.getString("name");
                    int age =set.getInt("age");
                    String sex =set.getString("sex");
                    String address=set.getString("adress");
                    String birth=set.getString("birth");
                    String tel=set.getString("tel");
                    String email=set.getString("Email");

                    System.out.println("\t\t" + id + " \t\t\t" + name
                            + " \t\t\t" + age + " \t\t\t" + sex +" \t\t\t" + address +
                            " \t\t\t" + birth+ " \t\t\t" + tel +" \t\t\t" + email +
                            "  \t\t\t"  + "\n");
                }
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }finally {
                jdbcUtiles.close(set,preparedStatement,connection);
            }
        }else{
            System.out.println(">学生信息显示\n");

            System.out.println("\t --------------------------------------------------------------------------------------------------------");
            System.out.println("\t   学号\t\t" + "   姓名\t\t" + " \t年龄\t" + "\t\t性别" + " \t\t\t地址"+
                    " \t\t\t出生日期"+" \t\t\t电话"+" \t\t\t邮箱" );
            System.out.println("\t  ------------------------------------------------------------------------------------------------------");

            Connection connection =null;
            String sql="select * from Student";
            PreparedStatement preparedStatement=null;
            ResultSet set=null;
            try {
                connection  = jdbcUtiles.getConnection();
                preparedStatement = connection.prepareStatement(sql);

                //执行
                set = preparedStatement.executeQuery();

                while(set.next()){
                    int id=set.getInt("stuId");
                    String name=set.getString("name");
                    int age =set.getInt("age");
                    String sex =set.getString("sex");
                    String address=set.getString("adress");
                    String birth=set.getString("birth");
                    String tel=set.getString("tel");
                    String email=set.getString("Email");

                    System.out.println("\t\t" + id + " \t\t\t" + name
                            + " \t\t\t" + age + " \t\t\t" + sex +" \t\t\t" + address +
                            " \t\t\t" + birth+ " \t\t\t" + tel +" \t\t\t" + email +
                            "  \t\t\t"  + "\n");
                }
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }finally {
                jdbcUtiles.close(set,preparedStatement,connection);
            }
            System.out.println("\t  ------------------------------------" +
                    "------------------------------------------------------------------");
        }
        }

查询学生信息效果图如下
在这里插入图片描述

三、主类的调用🌍 🌎 🌏

1、 登录界面🛸

首先出现登陆的界面,我们需要输入我们的用户名和密码,然后判断是否正确
正确的话则执行下一步操作🍗 🍖 🦴


 public static void interFace() throws AWTException {
        System.out.println(">首界面\n");
        System.out.println("\t*****************************************************************");
        System.out.println("\t                           首界面                              ");
        System.out.println("\t ---------------------------------------------------------------");
        System.out.println("\t                开始登录                   请输入1               ");
        System.out.println("\t ---------------------------------------------------------------");
        System.out.println("\t                退出                      请输入0               ");
        System.out.println("\t*****************************************************************");
        Scanner sc = new Scanner(System.in);
        System.out.print("\n请输入您的选择: ");
        while (true) {
            int choose = sc.nextInt();
            if (choose == 1) {

                register();
                break;
            } else if (choose == 0) {
                System.out.println("退出成功!");
                System.exit(0);
            } else {
                System.out.print("看清选项! 再给你一次机会:");
            }
        }
    }
  public static void register() throws AWTException {
        for (int i = COUNT; i >= 0; i--) {
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入您的用户名: ");
            String loginSid = sc.nextLine();
            System.out.print("请输入您的密码: ");
            String loginPassWd = sc.nextLine();
            if (loginSid.equals(MYSID) && loginPassWd.equals(MYPASSWD)) {
                Extents.clearConsole();
                System.out.println("欢迎登录! 用户:" + MYSID + "\n\n");
                menu();
                break;
            } else {
                if (i == 0) {
                    System.out.println("你是不是傻!");
                    System.exit(0);
                }
                System.out.println("错了错了, 你还有 " + i + " 次机会");
            }
        }
    }

2、 界面搭建🛸🛸

 public static void menu() throws AWTException {
        ArrayList<Student> stu = new ArrayList<>();
        while (true) {
            System.out.println(">首界面>功能界面\n");
            System.out.println("\t*****************************************************************");
            System.out.println("\t                      欢迎来到学生管理系统!                      ");
            System.out.println("\t ---------------------------------------------------------------");
            System.out.println("\t                         1.添加学生信息                          ");
            System.out.println("\t ---------------------------------------------------------------");
            System.out.println("\t                         2.删除学生信息                          ");
            System.out.println("\t ---------------------------------------------------------------");
            System.out.println("\t                         3.修改学生信息                          ");
            System.out.println("\t ---------------------------------------------------------------");
            System.out.println("\t                         4.查看学生信息                          ");
            System.out.println("\t ---------------------------------------------------------------");
            System.out.println("\t         q:返回上级菜单                  p:退出管理系统          ");
            System.out.println("\t******************************************************************");
            Scanner sc = new Scanner(System.in);
            System.out.print("\n请输入您的选择:");
            String choose = sc.nextLine();
            switch (choose) {
                case "1":
                    FunctionalBlock.addStu(stu);
                    break;
                case "2":
                    Extents.clearConsole();
                    FunctionalBlock.deleteStu(stu);
                    break;
                case "3":
                    Extents.clearConsole();
                    FunctionalBlock.updateStu(stu);
                    break;
                case "4":
                    Extents.clearConsole();
                    FunctionalBlock.showStu(stu);
                    Extents.isShow(sc);
                    break;
                case "q":
                    Extents.clearConsole();
                    interFace();
                    return;
                case "p":
                    System.out.println("退出成功!");
                    System.exit(0);
                default:
                    Extents.clearConsole();
                    System.out.println("这都错!看清选项再选\n\n\n");
                    break;
            }
        }
    }

四、 Extents的相关善后操作🌎 🌏 🌎 🌏

Extents是完成相关的善后操作,是对FunctionalBlock里面功能实现的相关善后的操作
目的是为了使得更加程序逻辑清晰🍗 🍖 🦴

package classSystem;

import java.awt.*;
import java.awt.event.KeyEvent;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Scanner;


public class Extents {


    public static void isAdd(ArrayList<Student> stu, Scanner sc,int stuId ,String sex,String birth,String tel,String email, String name, int age, String address) throws AWTException {
        while (true) {
            int is = sc.nextInt();
            if (is == 0) {
                Extents.clearConsole();
                System.out.println("取消成功!");
                break;
            } else if (is == 1) {
                /*Student s = new Student(stuId,name, age,sex,birth, address,tel,email);
                stu.add(s);*/
                Connection connection =null;

                String sql ="insert into Student values(?,?,?,?,?,?,?,?)";
                PreparedStatement preparedStatement=null;
                try {

                    connection  = jdbcUtiles.getConnection();
                    preparedStatement = connection.prepareStatement(sql);

                   preparedStatement.setInt(1,stuId);
                   preparedStatement.setString(2,name);
                   preparedStatement.setInt(3,age);
                   preparedStatement.setString(4,sex);
                   preparedStatement.setString(5,address);
                   preparedStatement.setString(6,birth);
                   preparedStatement.setString(7,tel);
                   preparedStatement.setString(8,email);

                    //执行
                    preparedStatement.executeUpdate();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }finally {
                    jdbcUtiles.close(null,preparedStatement,connection);
                }


                stuId += 1;
                Extents.clearConsole();
                System.out.println("添加信息成功!\n\n");
                FunctionalBlock.showStu(stu);
                break;
            }
            System.out.print("\n输入错误!请重新输入:");
        }
    }

    public static void isDlete(ArrayList<Student> stu, Scanner sc, int flag) throws AWTException {
        while (true) {
            int is = sc.nextInt();
            if (is == 0) {
                Extents.clearConsole();
                System.out.println("取消成功!");
                break;
            } else if (is == 1) {

                Connection connection =null;
                String sql ="delete from Student  where stuId=?";

                PreparedStatement preparedStatement=null;
                try {

                    connection  = jdbcUtiles.getConnection();
                    preparedStatement = connection.prepareStatement(sql);
                    preparedStatement.setInt(1,flag);

                    //执行
                    preparedStatement.executeUpdate();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }finally {
                    jdbcUtiles.close(null,preparedStatement,connection);
                }



                Extents.clearConsole();
                System.out.println("删除学生信息成功!\n\n");
                FunctionalBlock.showStu(stu);
                break;
            }
            System.out.print("\n输入错误!请重新输入:");
        }
    }

    public static void isUpdata(ArrayList<Student> stu, Scanner sc, int sidUpdate, int flag, String sex,String birth,String tel,String email, String name, int age, String address) throws AWTException {
        while (true) {
            int is = sc.nextInt();
            if (is == 0) {
                Extents.clearConsole();
                System.out.println("取消成功!");
                break;
            } else if (is == 1) {
                Student newStu = new Student(sidUpdate, name,age,sex,birth,address, tel,email);
                Extents.clearConsole();
                System.out.println("修改学生信息成功!\n\n");
                FunctionalBlock.showStu(stu);
                break;
            }
            System.out.print("\n输入错误!请重新输入:");
        }
    }

    public static void isShow(Scanner sc) throws AWTException {
        System.out.println("\n\n\n>首界面>功能界面>查看学生信息\n\n");
        System.out.println("\t              返回上级                     请输入0           ");
        System.out.println("\t ---------------------------------------------------------------");
        System.out.print("\n请输入您的选择: ");
        while (true) {
            int choose1 = sc.nextInt();
            if (choose1 == 0) {
                Extents.clearConsole();
                break;
            } else {
                System.out.print("看清选项! 再给你一次机会: ");
            }
        }
    }

    public static int getFlag(ArrayList<Student> stu, int sid) {

        Connection connection =null;
        String sql="select * from Student";
        PreparedStatement preparedStatement=null;
        ResultSet set=null;
        try {
            connection  = jdbcUtiles.getConnection();
            preparedStatement = connection.prepareStatement(sql);

            //执行
            set = preparedStatement.executeQuery();

            while(set.next()){

                int id  =set.getInt("stuId");
                if(sid==id){
                    return id;
                }
            }
            return -1;
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }finally {
            jdbcUtiles.close(set,preparedStatement,connection);
        }




    }

    public static void clearConsole() throws AWTException {
        Robot r = new Robot();
        // 按下Ctrl键
        r.keyPress(KeyEvent.VK_CONTROL);
        // 按下R键
        r.keyPress(KeyEvent.VK_R);
        // 释放R键
        r.keyRelease(KeyEvent.VK_R);
        // 释放Ctrl键
        r.keyRelease(KeyEvent.VK_CONTROL);
        r.delay(50);
    }
}

五、 数据库的连接🌍 🌎🌏 🌍 🌎 🌏

毕竟我们的这个项目是要连接到数据库当中的
🚴🏼‍♂️ 🚵🏼‍♀️所以我们需要手动操作完成数据库连接的相关代码 🚴🏼‍♂️ 🚵🏼‍♀️

package classSystem;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;

public class jdbcUtiles {

    //工具类,连接mysql的连接和关闭

    private static String user;
    private static String password;
    private static String url;
    private static String driver;

    static {
        Properties properties =new Properties();
        try {
            properties.load(new FileInputStream("src\\mysql.properties"));

            //读取相关属性
            user=properties.getProperty("uesr");
            password =properties.getProperty("password");
            url=properties.getProperty("url");
            driver = properties.getProperty("driver");


        } catch (IOException e) {
            throw new RuntimeException(e);
        }


    }
    //连接数据库

    public static Connection getConnection(){

        try {
            return DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }


    //关闭相关资源
    public static void close(ResultSet set, PreparedStatement preparedStatement,Connection connection){

        try {
            if(set!=null){
                set.close();
            }
            if(preparedStatement!=null){
                preparedStatement.close();
            }
            if(connection!=null){
                connection.close();
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }


    }

}

在这里插入图片描述

六 、感谢与交流🌍 🌎 🌏 🌍 🌎 🌏

🌹🌹🌹如果大家通过本篇博客收获了,对通过ava实现学生课程管理系统(数据库)
有了更好的了解的话
那么希望支持一下哦如果还有不明白的,疑惑的话,或者什么比较好的建议的话,可以发到评论区,
我们一起解决,共同进步 ❗️❗️❗️
最后谢谢大家❗️❗️❗️💯💯💯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410585.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

重磅!阿里版本【ChatGPT】开放测评!

前两天突然爆出惊人消息&#xff1a;阿里版ChatGPT开放测评了&#xff01; 在本月初&#xff0c;已经有诸多关于阿里巴巴即将推出类似ChatGPT产品的传闻。 数日前&#xff0c;首批曝光的天猫精灵“鸟鸟分鸟”脱口秀版GPT基于大型模型的“精简版”&#xff0c;凭借其出色的表现吸…

2023-4-11-chrono库用法学习

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f;&#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xff0…

4.9、字节序

4.9、字节序1.简介2.字节序举例3.判断电脑存储方式代码1.简介 现代 CPU 的累加器一次都能装载&#xff08;至少&#xff09;4 字节&#xff08;这里考虑 32 位机&#xff09;&#xff0c;即一个整数。那么这 4字节在内存中排列的顺序将影响它被累加器装载成的整数的值&#xff…

vue element-ui 暗黑主题应用到若依框架

问题描述 基于若依框架的element-ui&#xff0c;将主题更换为暗黑主题。 问题分析 现有的element-ui框架提供的主题不满足自定义需求&#xff0c;大多数框架&#xff0c;包括若依提供了更换主题色的功能&#xff0c;但也只是更换的primary-color&#xff0c;其他组件的主题还…

算法小课堂(五)贪心算法

一、概述 贪心算法是一种常见的算法思想&#xff0c;用于解决优化问题。其基本思想是在每一步选择中都采取当前状态下最优的选择&#xff0c;从而希望能够获得全局最优解。 具体来说&#xff0c;贪心算法通常分为以下步骤&#xff1a; 定义问题的最优解&#xff0c;通常需要将…

【人生历程】我的创作纪念日

目录 与编程不得不说的爱恨情仇 在csdn的收获&#xff1a; 与csdn的日常 在平凡的日子偶然的成就感&#xff1a; 对未来的憧憬&#xff1a; 今天是2023.4.8号&#xff0c;早上的刚刚参加完蓝桥杯&#xff0c;下午看到csdn官方的活动&#xff0c;心血来潮写下以下内容&…

家政服务小程序实战开发教程018-用户注册

我们在教程的一开始的时候就讲解了用户注册的功能。当初的规划是一进来就让用户自主的选择角色&#xff0c;然后提交用户信息&#xff0c;如果未注册就跳转到注册界面。 随着教程的深入&#xff0c;又参考了很多线上的小程序&#xff0c;发现这种模式也有一定的缺点。因为作为…

Linux网络虚拟化2

Linux网络虚拟化2 今天我们接着上节课介绍的 Linux 网络知识&#xff0c;继续来学习它们在虚拟化网络方面的应用&#xff0c;从而为后续学习容器编排系统、理解各个容器是如何通过虚拟化网络来协同工作打好基础。 这一篇内容较多&#xff0c;可以重点看标红部分和标粗部分​。…

Ubuntu环境下minicom使用

1、minicom的安装 sudo apt-get install minicom2、minicom的配置 sudo minicom -s # 打开minicom配置界面3、配置serial port setup串口信息 使用上下箭头选择&#xff0c;enter进入。 按A修改Serial Device&#xff0c;修改之前可以用命令ls -la /dev/ttyUSB或者ls -la …

java 一文讲透集合框架(10万字博文)

目录 一、前言 二、集合简介 1.定义 : 2.集合与数组的区别 : 3.集合的好处 : 三、集合框架 1.单列集合 2.双列集合 Δ体系图&#xff08;重要&#xff09; 四、List集合详解&#xff08;三万余字&#xff09; 五、Set集合详解&#xff08;三万余字&#xff09; 六、增…

学习实践-Whisper语音识别模型实战(部署+运行)

1、Whisper内容简单介绍 OpenAI的语音识别模型Whisper&#xff0c;Whisper 是一个自动语音识别&#xff08;ASR&#xff0c;Automatic Speech Recognition&#xff09;系统&#xff0c;OpenAI 通过从网络上收集了 68 万小时的多语言&#xff08;98 种语言&#xff09;和多任务…

论文笔记|CVPR2023:Semantic Prompt for Few-Shot Image Recognition

论文地址&#xff1a;https://arxiv.org/pdf/2303.14123.pdf 这是一篇2023年发表在CVPR上的论文&#xff0c;论文题目是Semantic Prompt for Few-Shot Image Recognitio&#xff0c;即用于小样本图像识别的语义提示。 1 Motivation 第一&#xff0c;最近几项研究利用 语义信…

< Linux >:进程地址空间

目录 一、验证进程地址空间 二、感知进程地址空间的存在 一、验证进程地址空间 我们之前学的 C/C 程序地址空间是物理内存吗&#xff1f; 答&#xff1a;不是物理内存&#xff0c;甚至叫做程序地址空间都不太准确&#xff0c;应该叫做进程地址空间&#xff0c;因此根本就不是…

Notion插件,让你的页面有无限可能

// 你是否觉得notion的极简风格略为单调&#xff1f;是否想用notion实现更多的功能&#xff1f;是否想让notion更为便捷&#xff0c;更为多样化&#xff1f;那今天推荐的几款notion插件绝对不能错过&#xff0c;因为他们也确实不错。 // - ———byFutureForce DAO——— - 你…

把ChatGPT接入我的个人网站

效果图 详细内容和使用说明可以查看我的个人网站文章 把ChatGPT接入我的个人网站 献给有外网服务器的小伙伴 如果你本人已经有一台外网的服务器&#xff0c;并且页拥有一个OpenAI API Key&#xff0c;那么下面就可以参照我的教程来搭建一个自己的ChatGPT。 需要的环境 Cento…

让我们一起解密组播、IGMP、IGMP监听

前言&#xff1a;一直对组播这个概念迷迷糊糊&#xff0c;特别是交换机处理组播的方式&#xff0c;非常想搞懂但是懒癌发作。这几天终于耐心地看了下有关组播的资料&#xff0c;大致了解了一下同一广播域内组播的相关知识。组播占了计算机网络的一大部分&#xff0c;特别是组播…

ChatGPT 被大面积封号,到底发生什么了?

意大利数据保护机表示 OpenAI 公司不但非法收集大量意大利用户个人数据&#xff0c;没有设立检查 ChatGPT 用户年龄的机制。 ChatGPT 似乎正在遭遇一场滑铁卢。 3月31日&#xff0c; 大量用户在社交平台吐槽&#xff0c;自己花钱开通的 ChatGPT 账户已经无法登录&#xff0c;更…

举一反三学python(9)—excel基础

一、导论&#xff1a; 操作 excel 表格的Python 第三方库有openpyxl、xlrd、xlwt等&#xff0c;它们的功能都相同&#xff0c;就是语法有差异&#xff0c;今天我就带领大家学习用openpyxl模块操作实用的excel文件。 openpyxl模块为第三方库&#xff0c;首先要安装&#xff1a;p…

electron+vue3全家桶+vite项目搭建【九】集成vite-plugin-mock-server 模拟后端请求

文章目录引入1.引入依赖2.集成插件3.测试接口请求引入 后端接口出的太慢&#xff1f;问题不大&#xff0c;咱们可以借助vite-plugin-mock-server插件自己写接口&#xff0c;返回商量好的格式&#xff0c;后续联调直接切换环境即可 vite-plugin-mock-server官网 mock.js官网 …

uniapp人脸识别解决方案

APP端&#xff1a; 因为APP端无法使用uni的camera组件&#xff0c;最开始考虑使用内嵌webview的方式&#xff0c;通过原生dom调用video渲染画面然后通过canvas截图。但是此方案兼容性在ios几乎为0&#xff0c;如果app只考虑安卓端的话可以采用此方案。后面又想用live-pusher组件…