学生成绩管理系统功能改进(java)

本文采取了一位同学上学期利用java编程语言以及struts2框架写的一个学生成绩管理系统,在此基础上加以改进。

1.首先运行程序后,进入到登录或注册的页面,如下图:  

         

 测试了一下登录注册功能,登录后能够显示用户名,注册模块也设置了不能注册重复用户名的功能。

2.进入后的界面,如下:

       可以看出一个管理系统的最基本的增删改查功能,基本都涉及到了,可是测试后发现,在进行删除成绩的功能时,每次删除某个学生的成绩,会将其所有成绩清零,这一点在实际应用中显得有点不合理。所以我决定对此进行优化,使其可以删除学生的某一项成绩。

3.代码部分:

先为score的实体类增加一个subject属性,增添相应的getter和setter方法。

private String subject;
    public String getSubject() {
        return subject;
    }
    public void setSubject(String subject) {
        this.subject = subject;
    }

  然后是改原先的dao层的功能实现代码,原先是这样的:

public class DeleteDao {
     // 实现删除功能
    public int delete(Score score) {
        int flag = -1; // 判断删除是否成功
        // 加载数据库驱动,注册到驱动管理器
        try {
            Class.forName("com.mysql.jdbc.Driver");
            // 数据库连接字符串
            String url = "jdbc:mysql://localhost:3306/sss?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
            // 数据库用户名
            String usename = "root";
            // 数据库密码
                String psw = "tcl567315";
            // 创建Connection连接
            Connection conn = DriverManager.getConnection(url, usename, psw);
            String sql = " delete from score where s_id='"+score.getS_id()+"' ";
            PreparedStatement pstmt = conn.prepareStatement(sql1);
            int rs=pstmt.executeUpdate();
            if (rs>0) {
                flag = 1;
            }
            pstmt.close();
            conn.close();
            return flag;
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return -1;
        } catch (SQLException e) {
            e.printStackTrace();
            return -1;
        }
    }
}

现在在delete函数内多传入一个String subject的参数,然后修改sql语句,改为如下:

String sql = " update score set "+subject+"=0 where s_id='"+score.getS_id()+"' ";

  最后,再改下jsp页面的部分代码,增加下面这一行代码即可。

<input type="text" required="required" placeholder="科目" name="subject" id="subject">

4.效果显示 

 

 

 

 

删除成功!

 5.总结

       通过此次改进同学做的学生管理系统,发现当时我们初学javaweb能够做出来的东西是很简陋和基本的,这次改进的是一个删除功能,其实其他功能也还有不少可以改的地方。

而且由于只用了struts2的框架,源码中的重复代码还是很多的。目前来说,javaweb开发,无论是前端还是后端的框架都很多,学校里只能教会你最基础的知识,还有更多的知识和技能需要我们从网络上学习,然后再通过一些简单的小项目加以运用,才能理解掌握。

 

posted @ 2021-03-12 11:14  阳光的电话线  阅读(432)  评论(0)    收藏  举报