目录
一、项目介绍
在当今信息化社会,学生信息管理变得越来越重要。为了提高工作效率,我们设计了一个简单易用的学生信息管理系统。本系统采用Java语言编写,利用MySQL作为后端数据库存储学生信息。本文档将详细介绍如何运行和使用该系统。
二、系统架构
本系统主要由以下几个模块组成:
-
DAO层:负责与数据库交互,处理增删改查操作。
-
实体层:封装学生、课程和成绩等实体对象。
-
工具类:提供一些通用的功能,如数据库连接池等。
-
视图层:展示给用户的界面,包括登录页面和其他功能页面。
三、运行环境
-
操作系统:Windows/Linux/Mac OS X
-
开发工具:Eclipse/IntelliJ IDEA
-
数据库:MySQL 8.x
-
Java版本:Java 8及以上
四、安装与配置
1. 安装MySQL
首先需要安装MySQL数据库服务器,并创建一个新的数据库student
create database student;
use student;
2. 导入数据脚本
将附带的student.sql
文件导入到新创建的数据库中,初始化表结构和初始数据。
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`Aid` int NOT NULL,
`Aname` varchar(30) NOT NULL,
`Apwd` varchar(10) NOT NULL,
PRIMARY KEY (`Aid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
INSERT INTO `admin` VALUES ('123456', '管理员', '123456');
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
`Cnum` int NOT NULL AUTO_INCREMENT,
`Cno` int NOT NULL,
`Cname` varchar(20) NOT NULL,
`Ctime` int NOT NULL,
`Ccredit` int NOT NULL,
PRIMARY KEY (`Cnum`,`Cno`),
KEY `Cname` (`Cname`),
KEY `Cno` (`Cno`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3;
INSERT INTO `course` VALUES ('1', '1001', '数据库原理', '48', '3');
INSERT INTO `course` VALUES ('2', '1002', '操作系统', '64', '4');
INSERT INTO `course` VALUES ('3', '1003', '计算机网络', '64', '4');
INSERT INTO `course` VALUES ('4', '1004', 'java', '64', '4');
INSERT INTO `course` VALUES ('6', '1005', 'python', '48', '3');
INSERT INTO `course` VALUES ('7', '1006', '软件工程', '48', '3');
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
`Sno` int NOT NULL,
`Sname` varchar(20) NOT NULL,
`Cno` int NOT NULL,
`Cname` varchar(20) DEFAULT NULL,
`Sscore` decimal(10,0) DEFAULT '0',
`Rescore` decimal(10,0) DEFAULT '0',
PRIMARY KEY (`Sno`,`Cno`),
KEY `Cname` (`Cname`),
KEY `Cno` (`Cno`),
KEY `Sname` (`Sname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
INSERT INTO `score` VALUES ('20210601', '李伟', '1001', '数据库原理', '100', '0');
INSERT INTO `score` VALUES ('20210601', '李伟', '1002', '操作系统', '100', '0');
INSERT INTO `score` VALUES ('20210601', '李伟', '1003', '计算机网络', '100', '0');
INSERT INTO `score` VALUES ('20210601', '李伟', '1004', 'java', '100', '0');
INSERT INTO `score` VALUES ('20210602', '王伟', '1001', '数据库原理', '100', '0');
INSERT INTO `score` VALUES ('20210602', '王伟', '1004', 'java', '100', '0');
INSERT INTO `score` VALUES ('20210603', '刘伟', '1004', 'java', '100', '0');
INSERT INTO `score` VALUES ('20210604', '刘伟', '1001', '数据库原理', '100', '0');
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`Sno` int NOT NULL,
`Sname` varchar(30) NOT NULL,
`Sgender` char(2) NOT NULL,
`Sage` int NOT NULL,
`Sbirthday` datetime DEFAULT '1999-01-01 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
`Sclass` varchar(10) NOT NULL,
`Smajor` varchar(20) NOT NULL,
`Sdept` varchar(20) NOT NULL,
`Spwd` varchar(10) NOT NULL DEFAULT '123',
PRIMARY KEY (`Sno`),
KEY `Sname` (`Sname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
INSERT INTO `student` VALUES ('20210601', '李伟', '男', '20', '1999-01-01 00:00:00', '2021061', '软件工程', '计算机学院', '123');
INSERT INTO `student` VALUES ('20210602', '王伟', '女', '20', '2021-06-26 21:29:26', '2021061', '软件工程', '计算机学院', '123');
INSERT INTO `student` VALUES ('20210603', '刘伟', '男', '20', '2021-06-26 21:29:30', '2021062', '软件工程', '计算机学院', '123');
INSERT INTO `student` VALUES ('20210604', '赵伟', '男', '20', '2021-06-26 21:29:32', '2021062', '软件工程', '计算机学院', '123');
3. 配置数据库连接
打开src/com/utils/DB.java
文件,在其中配置你的MySQL数据库连接参数:
public static String url = "jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=UTF-8";
public static String user = "root"; // 更改为你的MySQL用户名
public static String password = "password"; // 更改为你的MySQL密码
4. 编译与运行
在IDE中编译整个项目,然后找到src/com/view/Login.java
文件,点击运行按钮即可启动系统。
五、系统功能
1. 用户登录
系统支持两种身份登录:管理员和普通学生。管理员拥有全部权限,可以查看、编辑和删除所有学生的信息;而学生只能查看自己的信息。
管理员登录
学生登录
2. 功能菜单
系统提供了以下功能:
-
添加学生信息
-
修改学生信息
-
删除学生信息
-
查看学生列表
-
添加课程信息
-
修改课程信息
-
删除课程信息
-
查看课程列表
-
添加成绩记录
-
修改成绩记录
-
删除成绩记录
-
查看成绩列表
六、系统截图
七、部分代码示例
-
管理员类(Admin)
package com.system.entity; public class Admin { private int aId; private String aName; private String aPwd; public Admin() { super(); } public Admin(int aId, String aName, String aPwd) { super(); this.aId = aId; this.aName = aName; this.aPwd = aPwd; } public int getaId() { return aId; } public void setaId(int aId) { this.aId = aId; } public String getaName() { return aName; } public void setaName(String aName) { this.aName = aName; } public String getaPwd() { return aPwd; } public void setaPwd(String aPwd) { this.aPwd = aPwd; } @Override public String toString() { return "Admin [aId=" + aId + ", aName=" + aName + ", aPwd=" + aPwd + "]"; } }
-
课程类(Course)
package com.system.entity; public class Course { private String cnum; private String cno; private String cname; private String ccredit; private String ctime; public Course() { super(); } public Course(String cnum, String cno, String cname, String ccredit, String ctime) { super(); this.cnum = cnum; this.cno = cno; this.cname = cname; this.ccredit = ccredit; this.ctime = ctime; } public String getCnum() { return cnum; } public void setCnum(String cnum) { this.cnum = cnum; } public String getCno() { return cno; } public void setCno(String cno) { this.cno = cno; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public String getCcredit() { return ccredit; } public void setCcredit(String ccredit) { this.ccredit = ccredit; } public String getCtime() { return ctime; } public void setCtime(String ctime) { this.ctime = ctime; } @Override public String toString() { return "Course [cnum=" + cnum + ", cno=" + cno + ", cname=" + cname + ", ccredit=" + ccredit + ", ctime=" + ctime + "]"; } }
-
成绩类(Score)
package com.system.entity; public class Score { private String Sno; private String Sname; private String Cno; private String Cname; private String Sscore; private String Rescore; public Score() { super(); } public Score(String sno, String sname, String cno, String cname, String sscore, String rescore) { super(); Sno = sno; Sname = sname; Cno = cno; Cname = cname; Sscore = sscore; Rescore = rescore; } public String getSno() { return Sno; } public void setSno(String sno) { Sno = sno; } public String getSname() { return Sname; } public void setSname(String sname) { Sname = sname; } public String getCno() { return Cno; } public void setCno(String cno) { Cno = cno; } public String getCname() { return Cname; } public void setCname(String cname) { Cname = cname; } public String getSscore() { return Sscore; } public void setSscore(String sscore) { Sscore = sscore; } public String getRescore() { return Rescore; } public void setRescore(String rescore) { Rescore = rescore; } @Override public String toString() { return "Score [Sno=" + Sno + ", Sname=" + Sname + ", Cno=" + Cno + ", Cname=" + Cname + ", Sscore=" + Sscore + ", Rescore=" + Rescore + "]"; } }
八、结语
通过以上步骤,您已经成功搭建起了学生信息管理系统。希望这个简单的系统能够帮助您更有效地管理学生信息。如果在使用过程中有任何疑问或建议,请随时联系我们。