Java mysql学生管理系统(简易)源

学校要求搞了一个小项目、实习生写的代码还有很多不足,但是基本功能都实现

懂得都懂,还缺少优化!各位可以自己加功能

(想要完整代码直接拖到下面复制)

1.第一步搭建mysql


首先我是采用了小皮面板8.0来启动mysql(下载)

mysql版本采用的是5.7.26、直接无脑点击开启mysql

2.打开项目目录、在scr同目录创建一个 libs文件夹、并且(下载密码6666)两个mysql.jar的包

这步是导入依赖

3.打开idea打开libs包、右键两个.jar的包、选择add to project library

 

 硬件就导入完毕了!

2.实现基础代码

2-1.首先要实现一些基础功能(这里我创建了一个StudentManager.java)

2-2菜单代码(ps:当flag=false的时候将跳出死循环)

import java.util.Scanner;

public class studentManager {
    //主类型
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        boolean flag = true;

        while (flag){
            //执行菜单
            displaymenu();
            /*用户输入的值*/
            String choice = sc.next();
            switch (choice){
                case "1":
                    System.out.println("添加学生");
                    break;
                case "2":
                    System.out.println("删除学生");
                    break;
                case "3":
                    System.out.println("修改学生");
                    break;
                case "4":
                    System.out.println("查看学生");
                    break;
                case "5":
                    System.out.println("退出");
                    flag = false;
                    break;
                default:
                    System.out.println("输入的值有误");
                    break;
            }

        }

    }
    //菜单
    private static void displaymenu() {
        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("请输入你的选择");
    }
}

写完的代码的预览图

这样就完成了第一步

 3.嵌入mysql和创建数据表

3.1创建mysql的表、注意id一定要选择自增

 3.2mysql连接方法、这个一定要先放进去,增删改查都需要用到他

private static Connection mysqlConnection() throws SQLException {
        /*格式:地址值:端口 数据库名字 ssl验证 时区*/
        String url = "jdbc:mysql://localhost:3306/heima?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";

        /*写入数据库账号密码*/
        Connection conn = DriverManager.getConnection(url, "root", "123456");

        /*返回*/
        return conn;
    }

3.3查询学生信息方法

/*查询学生数据*/
    private static void qureystudent() throws SQLException {
        mysqlQuery();
    }
//判断数据库是否有值、返回boolean类型、丢入一个sql语句
    public static boolean selectcheck(String sql) throws SQLException {
        //假设不存在
        boolean flag = false;
        //连接数据库,创建方法
        Connection conn = mysqlConnection();
        Statement  smt = null;
        smt = conn.createStatement();

        /*执行sql语句,获取boolean值*/
        ResultSet rs = smt.executeQuery(sql);
        if (rs.next()){
            flag = true;
            return flag;
        }
        return flag;
    }
//数据表查询
    public static void mysqlQuery() throws SQLException{
        Connection conn = mysqlConnection();
        Statement  smt = null;
        smt = conn.createStatement();
        //根据id进行降序
        String sql = "SELECT * FROM itheima order by id desc";
        boolean flag = selectcheck(sql);
        if (!flag){
            System.out.println("暂未有数据,请先添加");
            return;
        }

        ResultSet rs = smt.executeQuery(sql);
        //循环打印
        while(rs.next()){

            // 通过字段检索
            int id  = rs.getInt("id");
            String sid  = rs.getString("sid");
            String name = rs.getString("name");
            int age = rs.getInt("age");
            String brithday = rs.getString("brithday");

            // 输出数据
            System.out.print(" 编号:" + id);
            System.out.print(" 学号: " + sid);
            System.out.print(" 名字: " + name);
            System.out.print(" 年龄: " + age);
            System.out.print(" 生日: " + brithday);
            System.out.print("\n");

        }
        // 完成后关闭
        rs.close();
        smt.close();

    }

3.4新增学生数据方法

/*添加学生数据*/
    private static void addstudent() throws SQLException{
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入学生的学号");
        String sid = scanner.next();

        System.out.println("请输入学生的名字");
        String name = scanner.next();

        System.out.println("请输入学生的年龄");
        int age = scanner.nextInt();

        System.out.println("请输入学生的生日");
        String birthday = scanner.next();

        mysqlInsert(sid,name,age,birthday);

    }
//添加判断是否存在学号、传入一个student的学号
    public static boolean mysqlcheck(String student) throws SQLException {
        //假设不存在
        boolean flag = false;
        /*连接数据库*/
        Connection conn = mysqlConnection();
        //Statement执行sql语句,先设置为空
        Statement  smt = null;
        smt = conn.createStatement();

        /*mysql语句*/
        String sql = "SELECT * FROM itheima";
        /*将返回的值传回rs*/
        ResultSet rs = smt.executeQuery(sql);

        /*返回值是0或1,查看sid是否重复*/
        while(rs.next()){
            String sid  = rs.getString("sid");
            if (student.equals(sid)) {
                return true;
            }
        }

        return flag;
    }
//数据表添加、接收要添加的数据
    public static void mysqlInsert(String sid, String name, int age, String brithday) throws SQLException {
        //连接数据库
        Connection conn = mysqlConnection();
        //PreparedStatement操作数据库
        PreparedStatement smt = null;

        /*判断学号是否已经存在*/
        boolean flag = mysqlcheck(sid);
        if (flag){
            System.out.println("学号已存在,请换一个学号");
            return;
        }

        /*如果不存在继续往下执行*/
        String sql = "insert into itheima(sid,name,age,brithday) values(?,?,?,?)";
        smt = conn.prepareStatement(sql);
        smt.setString(1, sid);
        smt.setString(2, name);
        smt.setInt(3, age);
        smt.setString(4, brithday);
        int result =smt.executeUpdate();// 返回值0或者1

        /*人性化反馈*/
        if (result==1){
            System.out.println("添加学生数据成功");
        }else{
            System.out.println("添加学生数据失败");
        }
        //关闭资源,释放内存
        smt.close();
    }

3.5删除学生信息方法

/*删除学生数据*/
    private static void deletestudent() throws SQLException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要删除的id");
        int deletsid = sc.nextInt();

        mysqldelete(deletsid);

    }
//删除功能、丢入要删除的id
    public static void mysqldelete(int id) throws SQLException{
        //连接数据库
        Connection conn = mysqlConnection();
        PreparedStatement smt = null;

        //写入要删除的id
        String sql = "DELETE FROM itheima where id=?";
        smt = conn.prepareStatement(sql);
        smt.setInt(1, id);
        int result =smt.executeUpdate();

        if (result==0){
            System.out.println("删除失败,不存在的编号: "+id);
            return;
        }else{
            System.out.println("删除成功编号: "+id);
        }
    }

3.6修改学生信息的方法

/*修改学生数据*/
    public static void updateStudent() throws SQLException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的编号:");
        int id = sc.nextInt();

        System.out.println("请输⼊新的学⽣学号:");
        String sid = sc.next();

        System.out.println("请输⼊新的学⽣姓名:");
        String name = sc.next();

        System.out.println("请输⼊新的学⽣年龄:");
        int age = sc.nextInt();

        System.out.println("请输⼊新的学⽣⽣⽇:");
        String birthday = sc.next();

        mysqlupdate(id,sid,name,age,birthday);
    }
//添加判断是否存在学号、传入一个student的学号
    public static boolean mysqlcheck(String student) throws SQLException {
        //假设不存在
        boolean flag = false;
        /*连接数据库*/
        Connection conn = mysqlConnection();
        //Statement执行sql语句,先设置为空
        Statement  smt = null;
        smt = conn.createStatement();

        /*mysql语句*/
        String sql = "SELECT * FROM itheima";
        /*将返回的值传回rs*/
        ResultSet rs = smt.executeQuery(sql);

        /*返回值是0或1,查看sid是否重复*/
        while(rs.next()){
            String sid  = rs.getString("sid");
            if (student.equals(sid)) {
                return true;
            }
        }

        return flag;
    }
    //修改功能
    public static void mysqlupdate(int id,String sid,String name,int age,String brithday) throws SQLException{
        //连接数据库
        Connection conn = mysqlConnection();
        PreparedStatement smt = null;

        /*调用mysqlcheck方法判断sid是否重复*/
        boolean flag = mysqlcheck(sid);
        if (flag){
            System.out.println("学号已存在,请换一个学号");
            return;
        }

        /*将传入的值放进语句里面*/
        String sql = "update itheima set sid=?,name=?,age=?,brithday=? where id=?";
        smt = conn.prepareStatement(sql);
        smt.setString(1, sid);
        smt.setString(2, name);
        smt.setInt(3,age);
        smt.setString(4,brithday);
        smt.setInt(5,id);

        /*人性化提示*/
        int result =smt.executeUpdate();// 返回值0或者1
        if(result>0) {
            System.out.println("修改成功");
        }else {
            System.out.println("修改失败");
        }

    }

4.完完整整的代码,可以直接用(类名需要改一下)

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

public class studentManager {
    //主类型
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Scanner sc = new Scanner(System.in);
        boolean flag = true;

        while (flag){
            //执行菜单
            displaymenu();
            /*用户输入的值*/
            String choice = sc.next();
            switch (choice){
                case "1":
                    System.out.println("添加学生");
                    /*添加数据*/
                    addstudent();
                    break;
                case "2":
                    System.out.println("删除学生");
                    deletestudent();
                    break;
                case "3":
                    System.out.println("修改学生");
                    updateStudent();
                    break;
                case "4":
                    System.out.println("查看学生");
                    qureystudent();
                    break;
                case "5":
                    System.out.println("退出");
                    flag = false;
                    break;
                default:
                    System.out.println("输入的值有误");
                    break;
            }

        }

    }
    //菜单
    private static void displaymenu() {
        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("请输入你的选择");
    }
    /*修改学生数据*/
    public static void updateStudent() throws SQLException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的编号:");
        int id = sc.nextInt();

        System.out.println("请输⼊新的学⽣学号:");
        String sid = sc.next();

        System.out.println("请输⼊新的学⽣姓名:");
        String name = sc.next();

        System.out.println("请输⼊新的学⽣年龄:");
        int age = sc.nextInt();

        System.out.println("请输⼊新的学⽣⽣⽇:");
        String birthday = sc.next();

        mysqlupdate(id,sid,name,age,birthday);
    }
    /*删除学生数据*/
    private static void deletestudent() throws SQLException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要删除的id");
        int deletsid = sc.nextInt();

        mysqldelete(deletsid);

    }
    /*查询学生数据*/
    private static void qureystudent() throws SQLException {
        mysqlQuery();
    }
    /*添加学生数据*/
    private static void addstudent() throws SQLException{
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入学生的学号");
        String sid = scanner.next();

        System.out.println("请输入学生的名字");
        String name = scanner.next();

        System.out.println("请输入学生的年龄");
        int age = scanner.nextInt();

        System.out.println("请输入学生的生日");
        String birthday = scanner.next();

        mysqlInsert(sid,name,age,birthday);

    }


    /*查询用Statement和executeQuery*/
    /*修改用PreparedStatement和executeUpdate*/


    //数据库连接地址  标注成员函数可能抛出的sql异常 Connection数据库连接资源、方便其他方法调用
    private static Connection mysqlConnection() throws SQLException {
        /*格式:地址值:端口 数据库名字 ssl验证 时区*/
        String url = "jdbc:mysql://localhost:3306/heima?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";

        /*写入数据库账号密码*/
        Connection conn = DriverManager.getConnection(url, "root", "123456");

        /*返回*/
        return conn;
    }

    //数据表添加、接收要添加的数据
    public static void mysqlInsert(String sid, String name, int age, String brithday) throws SQLException {
        //连接数据库
        Connection conn = mysqlConnection();
        //PreparedStatement操作数据库
        PreparedStatement smt = null;

        /*判断学号是否已经存在*/
        boolean flag = mysqlcheck(sid);
        if (flag){
            System.out.println("学号已存在,请换一个学号");
            return;
        }

        /*如果不存在继续往下执行*/
        String sql = "insert into itheima(sid,name,age,brithday) values(?,?,?,?)";
        smt = conn.prepareStatement(sql);
        smt.setString(1, sid);
        smt.setString(2, name);
        smt.setInt(3, age);
        smt.setString(4, brithday);
        int result =smt.executeUpdate();// 返回值0或者1

        /*人性化反馈*/
        if (result==1){
            System.out.println("添加学生数据成功");
        }else{
            System.out.println("添加学生数据失败");
        }
        //关闭资源,释放内存
        smt.close();
    }

    //添加判断是否存在学号、传入一个student的学号
    public static boolean mysqlcheck(String student) throws SQLException {
        //假设不存在
        boolean flag = false;
        /*连接数据库*/
        Connection conn = mysqlConnection();
        //Statement执行sql语句,先设置为空
        Statement  smt = null;
        smt = conn.createStatement();

        /*mysql语句*/
        String sql = "SELECT * FROM itheima";
        /*将返回的值传回rs*/
        ResultSet rs = smt.executeQuery(sql);

        /*返回值是0或1,查看sid是否重复*/
        while(rs.next()){
            String sid  = rs.getString("sid");
            if (student.equals(sid)) {
                return true;
            }
        }

        return flag;
    }

    //数据表查询
    public static void mysqlQuery() throws SQLException{
        Connection conn = mysqlConnection();
        Statement  smt = null;
        smt = conn.createStatement();
        //根据id进行降序
        String sql = "SELECT * FROM itheima order by id desc";
        boolean flag = selectcheck(sql);
        if (!flag){
            System.out.println("暂未有数据,请先添加");
            return;
        }

        ResultSet rs = smt.executeQuery(sql);
        //循环打印
        while(rs.next()){

            // 通过字段检索
            int id  = rs.getInt("id");
            String sid  = rs.getString("sid");
            String name = rs.getString("name");
            int age = rs.getInt("age");
            String brithday = rs.getString("brithday");

            // 输出数据
            System.out.print(" 编号:" + id);
            System.out.print(" 学号: " + sid);
            System.out.print(" 名字: " + name);
            System.out.print(" 年龄: " + age);
            System.out.print(" 生日: " + brithday);
            System.out.print("\n");

        }
        // 完成后关闭
        rs.close();
        smt.close();

    }

    //判断数据库是否有值、返回boolean类型、丢入一个sql语句
    public static boolean selectcheck(String sql) throws SQLException {
        //假设不存在
        boolean flag = false;
        //连接数据库,创建方法
        Connection conn = mysqlConnection();
        Statement  smt = null;
        smt = conn.createStatement();

        /*执行sql语句,获取boolean值*/
        ResultSet rs = smt.executeQuery(sql);
        if (rs.next()){
            flag = true;
            return flag;
        }
        return flag;
    }

    //删除功能、丢入要删除的id
    public static void mysqldelete(int id) throws SQLException{
        //连接数据库
        Connection conn = mysqlConnection();
        PreparedStatement smt = null;

        //写入要删除的id
        String sql = "DELETE FROM itheima where id=?";
        smt = conn.prepareStatement(sql);
        smt.setInt(1, id);
        int result =smt.executeUpdate();

        if (result==0){
            System.out.println("删除失败,不存在的编号: "+id);
            return;
        }else{
            System.out.println("删除成功编号: "+id);
        }
    }

    //修改功能
    public static void mysqlupdate(int id,String sid,String name,int age,String brithday) throws SQLException{
        //连接数据库
        Connection conn = mysqlConnection();
        PreparedStatement smt = null;

        /*调用mysqlcheck方法判断sid是否重复*/
        boolean flag = mysqlcheck(sid);
        if (flag){
            System.out.println("学号已存在,请换一个学号");
            return;
        }

        /*将传入的值放进语句里面*/
        String sql = "update itheima set sid=?,name=?,age=?,brithday=? where id=?";
        smt = conn.prepareStatement(sql);
        smt.setString(1, sid);
        smt.setString(2, name);
        smt.setInt(3,age);
        smt.setString(4,brithday);
        smt.setInt(5,id);

        /*人性化提示*/
        int result =smt.executeUpdate();// 返回值0或者1
        if(result>0) {
            System.out.println("修改成功");
        }else {
            System.out.println("修改失败");
        }

    }
    
}

压缩包含使用说明,windows端在文件资管理器中 点击create.bat支持一键建表,其他系统可以使用 createtables.sql里面的sql语句进行数据库 欢迎使用学生信息管理系统(管理员端) 本系统支持添加,删除,修改等实用功能 方便您更好的管理学生数据 【I】管理员端 一,选择数据库 通过右上角的数据库菜单栏可以选择当前操 作的数据库 二,添加教师,学生,教师,学生成绩(管理员) 1)通过管理员窗口的左侧按钮可以按需添加 学生,教师,管理员,学生成绩等信息 2)通过下方按钮“添加行”来新建空行,然 后手动输入数据,再点击“保存”按钮将表 单上传到数据库。 (注意:如果格式不正确,比如通过该方法上传 的数据可能会发生错误,所以方法2只适合管 理员使用) 3)支持批量添加行(注意:如果有一行错误,所 有操作将被回滚) 4)为学生添加老师,进入选择学生数据库,在 某一个学生行单击右键,选择“添加老师”,即 可为该id的学生添加老师 5)为学生添加课程,进入学生数据可以,在某一 学生行单击右键,选择“修改成绩”,可以进入 成绩修改窗口(管理员端),输入学生id, 为学生添加任意课程,也可为课程添加或修改删除 成绩 三,删除 在表格中使用鼠标选中一些数据行,然后点击 左侧“删除”按钮,即可删除表单中的数据 四,修改 双击表格,输入数据,按回车保存,然后点击 右下角“保存修改”按钮,将表单上传到数据 库中。(注意:因为学生成绩信息是以二进制 形式储存,所以请不要直接在表格中修改) 五,排序 在表格某一列点击排序按钮,对当前选择的表单 按该列进行排序,右上角排序选择框可以决定排 序的方向是升序还是逆序。 【II】教师端 1)教师基本信息 教师信息将显示在表格左侧 2)查看学生列表 单击“我的学生”,表格中将显示该教师的所有 学生 3)在表格中右击某一个学生,将进入成绩修改窗 口(教师端),支持为当前学生添加或修改当前 教师所教科目的学生成绩 4)查看成绩表 单击“成绩表”,表格中显示该教师所有学生的 成绩信息。 【III】学生端 1)学生基本信息 学生信息将显示在表格左侧 2)查看成绩 单击“学业成绩”,表格中将显示学生所有成绩 3)查看老师 单击“我的老师”,表格中将显示学生所有老师 的基本信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值