项目四 学生信息管理系统(团队项目)

项目四 学生信息管理系统(团队项目)

1录入学生基本信息的功能;
2查询学生基本信息的功能;
3修改学生基本信息的功能;
4删除学生基本信息的功能;
5显示所有学生信息的功能。

项目总体框架

建立数据库->建立GUI->写事件监听
(1)数据库:为了增强系统的可移植性及数据的安全性,系统采用部署于腾讯云服务器上的MySQL数据库存储数据。
(2)后端:链接数据可,写事件监听来实现数据的增删改查等功能。
(3)前端;采用JavaSwing绘制GUI界面

数据库设计

在这里插入图片描述

GUI设计(举例(使用JAVAswing))

登录界面
GUI
初始账号密码为admin
给两个按钮(登录和重置)添加监听器,重写函数(举例)

dl.addActionListener(new ActionListener() {//登录

            @Override
            public void actionPerformed(ActionEvent e) {
                userid = unField.getText();
                password = pwField.getText();
                if(userid.equals("admin")&&password.equals("admin")) {
                    self.setVisible(false);
//                    JOptionPane.showMessageDialog(null, "登录成功", "登录情况",JOptionPane.PLAIN_MESSAGE);
                    new StuManager();
                } else {
                    JOptionPane.showMessageDialog(null, "账号或密码错误!", "登录情况",JOptionPane.PLAIN_MESSAGE);
                }
            }
        });
        d2.addActionListener(new ActionListener() {//重置
            @Override
            public void actionPerformed(ActionEvent e) {
                unField.setText("");
                pwField.setText("");
            }
        });

主界面
主页面

sql设计(监听的重写)

查询记录:
查询

public void actionPerformed(ActionEvent arg0) {
        //判断是哪个按钮被点击
        if(arg0.getSource() == jb1){
            System.out.println("用户希望被查询...");
            int index = searchType.getSelectedIndex();
            String sql = new String();
            if(index == 0){
                sql = "select * from stu ";
            }
            else if(index == 1){
                //因为把对表的数据封装到StuModel中,可以比较简单的完成查询
                String Id =this.jtf1.getText().trim();
                //写一个sql语句
                sql = "select * from stu where stuId = '"+Id+"' ";

            }
            else if(index == 2){
                String name =this.jtf1.getText().trim();
                sql = "select * from stu where stuName = '"+name+"' ";

            }
            else if(index == 3){
                String sex =this.jtf1.getText().trim();
                sql = "select * from stu where stuSex = '"+sex+"' ";

            }
            else if(index == 4){
                String age =this.jtf1.getText().trim();
                sql = "select * from stu where stuAge = '"+age+"' ";
            }
            else if(index ==5){
                String jg =this.jtf1.getText().trim();
                sql = "select * from stu where stuJG= '"+jg+"' ";

            }
            else if(index ==6){
                String bj =this.jtf1.getText().trim();
                sql = "select * from stu where stuBJ= '"+bj+"' ";

            }
            //构建一个数据模型类,并更新
            sm = new StuModel(sql);

            strRS=String.valueOf(sm.getRowCount());
            jtf2.setText(strRS);
            //更新jtable
            jt.setModel(sm);

        }

添加记录:
添加1
添加2
数据库也会同步更新数据
数据库

   //一、弹出添加界面
        else if(arg0.getSource() == jb2){
            System.out.println("添加...");
            StuAddDiag sa = new StuAddDiag(this,"添加学生",true);
            //重新再获得新的数据模型,
            sm =  new StuModel();
            strRS=String.valueOf(sm.getRowCount());
            jtf2.setText(strRS);
            jt.setModel(sm);
        }else if(arg0.getSource() == jb4){

删除记录(类似添加记录):

//1.得到学生的ID
            int rowNum = this.jt.getSelectedRow();//getSelectedRow会返回给用户点中的行
            //如果该用户一行都没有选,就返回-1
            if(rowNum == -1){
                //提示
                JOptionPane.showMessageDialog(this, "请选中一行");
                return ;
            }
            //得到学术ID
            String stuId = (String)sm.getValueAt(rowNum, 0);


            //连接数据库,完成删除任务
            try{
                //1.加载驱动
                Class.forName("com.mysql.cj.jdbc.Driver");
                //2.连接数据库
                String url = "jdbc:mysql://localhost:3306/student";
                String user = "root";
                String passwd = "111111";

                ct = DriverManager.getConnection(url, user, passwd);
//                System.out.println("连接成功");
                ps = ct.prepareStatement("delete from stu where stuId = ?");
                ps.setString(1,stuId);
                ps.executeUpdate();
                JOptionPane.showMessageDialog(null, "删除成功", "删除情况",JOptionPane.PLAIN_MESSAGE);
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                try{
                    if(rs!= null){
                        rs.close();
                        rs = null;

                    }
                    if(ps!= null){
                        ps.close();
                        ps = null;
                    }
                    if(ct != null){
                        ct.close();
                        ct = null;
                    }
                } catch(Exception e){
                    e.printStackTrace();
                }
            }
            sm = new StuModel();
            strRS=String.valueOf(sm.getRowCount());
            jtf2.setText(strRS);
            //更新jtable
            jt.setModel(sm);
        }else if(arg0.getSource() == jb3){
//            System.out.println("11111");

修改记录:

//三、用户希望修改
            int rowNum = this.jt.getSelectedRow();
            if(rowNum == -1){
                //提示
                JOptionPane.showMessageDialog(this, "请选择一行");
                return ;
            }
            //显示对话框
//            System.out.println( "12435");
            StuUpDiag su = new StuUpDiag(this, "修改学生信息", true, sm, rowNum);
            sm = new StuModel();
            jt.setModel(sm);
        }
    }

项目实现及结果分析

用户注册及登录
测试数据:用户名:admin;密码:admin
在这里插入图片描述

数据库中数据更新:
在这里插入图片描述

查询数据
输入框为空,即默认查询所有学生数据
在这里插入图片描述
输入学生学号,进精准查询(原因是学号是主键)
在这里插入图片描述

添加学生信息
测试数据:
学号110 名字警察叔叔 性别 男 年龄 30籍贯china 联系方式110 班级暂无
商品表中数据更新:
在这里插入图片描述

修改信息
测试数据:
学号110 名字警察叔叔 性别 男 年龄 30籍贯china 联系方式110 班级暂无
在这里插入图片描述

学生表中数据更新:
在这里插入图片描述

删除信息
测试数据:
学号110 名字警察叔叔 性别 男 年龄 18籍贯china 联系方式110 班级暂无
在这里插入图片描述

学生表中数据更新,已无此信息:
在这里插入图片描述

实验总结

(1)通过sql语言,实现数据信息的增删改查功能。利用高级语言设计良好的的用户界面,实现通过用户界面操作数据库中信息。
(2)本项目利用MySQL、JAVA等实现了基本的数据增删改查功能,但有些功能模块还会出现bug,需要优化缓存。
(3)我负责搭建数据库和编写后端代码,过程中遇到了非常多的难题和BUG,通过我和我们小组成员不断的努力后,终于完成了学生管理系统的搭建。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏格拉没有底~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值