基于java和mysql的学生信息管理系统.docx
《基于java和mysql的学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《基于java和mysql的学生信息管理系统.docx(11页珍藏版)》请在冰豆网上搜索。
基于java和mysql的学生信息管理系统
基于java和mysql的学生基本信息管理系统
1系统需求分析
1.1功能需求分析和功能设计
根据学生信息管理综合分析,便出于方便管理考虑,将学生信息管理系统的功能总结起来,共需要实现以下几个方面功能:
学生信息的增加:
管理员可以在数据库中增加学生信息。
学生信息的修改:
修改数据库中已经存在的学生信息。
学生信息的删除:
删除数据库中的学生信息。
学生信息的查询:
可以对学生信息进行查询操作,按学号、姓名、年龄来进行查询和排序。
学生信息进行排序:
按学号、姓名、年龄来进行排序。
学生信息的导入和导出:
将数据从数据库中导出到TXT、Word、Excel。
2学生信息管理系统设计
2.1数据模型分析与设计
本项目的关系数据模型的数据结构可分为两个表来表示:
学生信息表(Person)、用户信息表(UserInfo)。
学生信息表用于记录学生的基本信息,如表2-1;用户信息表用于记录系统用户的基本信息,如表2-2,这两个表对应的E-R图分别是:
图3.1学生信息E-R图;图3.2课程信息E-R图;图3.3学生选课E-R图;如下图
表2-1学生信息表(Person)
名称
字段名称
数据类型
主键
非空
学号
Sno
Varchar
Yes
Yes
姓名
Sname
Varchar
No
Yes
性别
Ssex
int
No
No
年龄
Sage
int
NO
Yes
籍贯
Shome
Varchar
No
No
家庭住址
Saddress
Varchar
No
No
联系方式
Stelephone
Varchar
No
No
表2-2用户信息表(UserInfo)
名称
字段名称
数据类型
主键
非空
用户编号
id
Int
Yes
Yes
用户名
Uname
Varchar(10)
No
Yes
密码
Upassword
Varchar(16)
No
Yes
2.2结构设计与结构功能图
2.2.1结构设计
根据对系统进行需求分析,本系统将分为4个模块:
●学生管理
管理学生基本信息,包括个人信息的添加、修改、删除、查询、按各种方式进行排序以及数据的导入的导出功能。
●用户管理
管理用户的基本信息,包括用户的添加、密码修改和用户删除。
2.2.2功能结构图
用户管理
增加
修改
删除
学生管理
添加
删除
修改
信息查询
按姓名查询
按学号查询
按年龄查询
学生管理系统
图2.2.2系统结构功能图
3、系统实现
该系统由6个模块构成,包括学生管理系统主界面模块、增加学生信息模块、查询学生信息模块、修改学生信息模块、删除学生信息模块和密码变更模块。
下面分别加以叙述:
1学生管理系统主界面模块
学生管理系统主界面模块包括LoginFrame.java和MainFrame.java两个文件。
LoginFrame是学生管理系统的登录对话框(如图3.1所示),登录成功后生成了学生管理系统的界面,MainFrame类继承自JFrame类,实现了ActionListener接口,他有一个带参数的构造方法MainFrame(LoginFramelf),用来关闭LoginFrame的实例。
MainFrame类将所有功能集中到菜单栏中,并通过调用其他模块来实现学生管理系统的各个功能,如图3.2所示。
图3.1学生管理系统登录界面
图3.2学生管理系统登录界面
2学生信息添加模块
学生信添加模块主要由InsertStu.java和数据库的接口文件PersonDAOimpl组成。
其中InsertStu是StuModel的子类,StuModel主要是生成界面,InsertStu接收用户输入,而PersonDAOimpl执行数据库的相关操作,这样使整个过程清楚明了。
是StuMode该模块的流程图如下图3.3所示,界面如3.4所示:
图3.3添加学生信息流程图
图3.4学添加学生信息界面
3查询学生信息模块
课程信息管理模块主要由Search.java、PersonDAOimpl.java、TableFrame.java、这3个文件组成。
Search.java负责用户查询数据的接收,PersonDAOimpl.java负责数据库查询操作,TableFrame.java负责数据的显示工作。
流程图如图3.5所示:
图3.5学生信息查询模块流程图
4修改学生信息模块
修改学生信息模块主要由UpdateDialog.java、UpdateStu、PersonDAOimpl.java这3个文件组成,其中,UpdateDialog负责数据的接收,UpdateStu显示修改界面,PersonDAOimpl负责数据层的操作。
流程图、界面如下:
5删除学生信息模块
这个模块主要是由DelDialog.java、Delete.java、PersonDAOimpl.java组成。
其中,DelDialog负责数据的接收,Delete显示修改界面,PersonDAOimpl负责数据层的操作。
流程图、界面如下:
4系统调试与测试
4.1系统功能测试
功能测试主要是测试程序模块是否实现了设计中所要求的功能。
功能测试中需要注意的有:
(1)查询功能中,有按单一查询条件进行查询的,也有按多个查询条件组合查询的。
这里要注意的多个查询条件之间的关系。
(2)录入功能中,需要注意的是前台设置的数值长度是否大于后台数值长度,以及前台和后台的数据结构是否相符,很多时候录入功能无法实现是由于这些原因。
还有就是必须录入的字段的设置时候有误。
(3)测试删除功能中需要注意的是单击"删除"按钮后,一般会出现提示信息,询问是否确定删除。
通常情况下,我们单击"确认"按钮查看信息是否被删除掉了,而忽略了单击"取消"按钮后程序的反应:
这时有可能的是没有删除,还有一种可能是即便单击了"取消"按钮,也一样删除了数据。
另外,在删除多条记录的时候,要注意连续选中的几条记录是否真正都被删除掉了,即如果再按照这种查询方式查询,时候还能查询出来。
有的时候需要在数据库中设立一个标志位,而不是真正的物理删除。
所以在下一次查询中,可能还会被查询出来,这主要是因为在查询条件中没有将标志考虑在内。
(4)关于修改功能的测试主要是看修改确认后是否数据真正已被修改了。
这是最基本的功能,需要注意的是看是否能把不应该修改的数据也修改成功了。
4.2系统实施发布
在编码结束以后,本人进行了如下测试:
界面测试、功能测试、需求测试、性能测试。
通过这几项的测试,基本可以保证系统的正常运行。
4.3系统调试常见错误
1.NullPointerException异常
一般是对一个为NULL值的变量进行操作引起的。
为避免这种异常,最好在对变量操作之前检查,看它是否为NULL值。
2.SQLException异常
一般是由于SQL语句不正确引起的。
为避免这种异常,最好在使用SQL语句的程序中捕获此SQL异常。
3.NumberFormatException异常
这是由于数字的格式错误而出现的例外。
为了避免出现此类错误,一般必须保证数据格式输入正确。
4.数据库连接垃圾回收
在实际的开发应用中,通常出现某一个对象未能关闭的情况,为了防止这种情况的发生,可以在有关对数据库操作的Java类文件中增加自动回收函数,在JVM自动地回收对象时,取出使用的连接对象,判断是否关闭,如果没有关闭则关掉。
代码如下所示:
protectedvoidfinalize()
{
try
{
If(getConn()!
=null&&!
getConn().isClosed())
{
rs.cloes();
stm.close();
conn.close();
}
}catch(SQLExceptione){}
}