Java课程设计——学生成绩管理 一、项目简介 二、功能架构图 三、个人任务介绍

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  1. 功能描述:系统用以管理学生成绩等相关信息,支持用户登录,数据采用数据库存储,可对学生成绩等相关信息进行增删查改,支持分别对所有学生各科成绩画出柱状分布图,能随机生成10万条测试数据写入数据库和文本文件(每科成绩以80分为中心正太分布)。
  2. 个人负责任务:GUI界面设计,数据库连接,功能5、6、8。

二、功能架构图

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

三、个人任务介绍

1. GUI界面设计

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

2. 数据库连接

数据库连接采用druid数据库连接池

导入jar包

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

druid配置信息

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

druid工具类

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍
Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

使用JdbcTemplate操作数据库

导入jar包

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

JdbcTemplate主要提供以下方法

  • execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;

  • update方法及batchUpdate方法:update方法用于执行增删改等语句,batchUpdate方法用于执行批处理相关语句;

  • query方法及queryForXXX方法:用于执行查询相关语句;

  • call方法:用于执行存储过程、函数相关语句。

批量添加数据

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍
Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 需要注意:要在URL中加入rewriteBatchedStatements=true语句,否则就算使用batchUpdate方法,实际上也没有起到批量添加的效果;对于添加10万条数据而言,若使用update方法一条条添加,效率十分低需要等待非常久的时间。

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

查询数据

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 使用query方法和BeanPropertyRowMapper实现类,将查询结果封装成指定对象再添加进列表。
  • 需要注意:因为基本数据类型不能赋值nul,所以指定对象属性的数据类型要为引用数据类型的封装类。

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

3. 生成学生学习情况报表

POI技术所需jar包

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

图形界面

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

输出至excel文件

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

关键代码

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍
Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍
Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

4. 生成柱状分布图

JFreeChart所需jar包

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

图形效果

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 通过jtable选中某行后右键单击即可生成柱状图。

关键代码

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍
Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

5. 随机生成10万条测试数据

图形界面

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

写入文本文件

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

写入数据库

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 数据库中,将student表的id设置为主键并从20210000001开始自增,建表代码如下。

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

关键代码

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 随机生成成绩时,使用nextGaussian()方法生成N(0,1)标准正太分布,逆用正太分布标准化公式将其乘标准差8再加期望80,得到N(80,64)正态分布。
  • 需要控制成绩小于100.0。

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 使用Calendar类获得当前系统时间,再将其减去若干天,获得一个大概区间内的时间范围,如图将区间约控制在[1998,2001]。
  • 使用Stirng.format()将日期标准化为yyyy-mm-dd的格式,使其与数据库数据格式相统一。

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 随机得到性别,可设置男女比例,名字根据性别不同而有所不同。

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍
Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 随机生成姓名,存储常用姓氏以及男女名字的常用字,通过随机的方式将姓和名进行排列组合、控制名字长度。

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍
Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 清空原有数据,获取随机数据,写入jtable,写入文本文件,批量写入数据库。

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 清空当前学生数据,使用"TRUNCATE TABLE student"语句删除数据库中的表信息更加高效,该语句将表删除并重新创建一个一模一样的的新表。
  • 清空表后要将学号的自增值初始化。

Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍
Java课程设计——学生成绩管理
一、项目简介
二、功能架构图
三、个人任务介绍

  • 编写updateTable()方法,当进入SystemJFrame时,将数据库的数据同步到jtable进行展示。