一、需求分析
1.1 个人信息
学号、姓名、性别、年级、系别、专业、出生日期、联系方式、个性签名、地址、照片。
1.2 基本功能要求管理员信息管理
登录、注销功能
修改密码功能
部落成员信息管理
添加成员
删除成员
修改成员信息
按条件查找筛选成员
1.3 高级特性管理员权限管理
成员信息包含照片
连接数据库性能的优化,比如:Connection
二、详细设计
2.1 数据库设计字段名
字段描述
数据类型
备注
psw
密码
nvarchar(30)
不为空
idNumber
学号
char(9)
主键
name
姓名
nvarchar(10)
不为空
sex
性别
char(2)
不为空
grade
年级
nvarchar(10)
不为空
dept
性别
nvarchar(30)
不为空
major
专业
nvarchar(30)
不为空
iden
身份
nvarchar(20)
不为空
born
出生日期
datetime
phone
联系方式
char(11)
pSignature
个性签名
nvarchar(50)
pAddress
地址
nvarchar(50)
picture
照片
nvarchar(150)
sql建表语句
create tablePersonInfo(
psw nvarchar(30)notnull,
idNumberchar(9)notnullprimary key,
name nvarchar(10)notnull,
sexchar(2)notnull,
grade nvarchar(10)notnull,
dept nvarchar(30)notnull,
major nvarchar(30)notnull,
iden nvarchar(20)notnull,
born datetimenull,
phonechar(11)null,
pSignature nvarchar(50)null,
pAddress nvarchar(50)null,
picture nvarchar(150)null
)
2.2 界面设计
登陆界面
主界面
修改密码
查询信息
修改信息
删除信息
2.3 分 包
2.3.1 视图层包View
2.3.2 控制层包Control
2.3.3 模型层包Model
2.4 分类
2.4.1 视图层类LoginView.java登录界面设计类
InfoManagerView.java信息管理系统主界面设计类
InfoPanel.java信息面板设计类
InfoSelectPanel.java查询信息面板设计类
InfoInsertPanel.java添加信息面板设计类
InfoUpdatePanel.java修改信息面板设计类
InfoDelPanel.java删除信息面板设计类
UpdatePasswordPanel.java修改密码面板设计类
2.4.2 控制层类InfoManager_01.java信息管理系统主类
LoginActEvents.java登录界面动作事件类
InfoManagerActEvents.java信息管理系统主界面动作事件类
InfoSelActEvents.java查询信息面板动作事件类
InfoInsActEvents.java添加信息面板动作事件类
InfoUpdActEvents.java修改信息面板动作事件类
InfoDelActEvents.java删除信息面板动作事件类
UpdPswActEvents.java修改密码面板动作事件类
ListSelEvents.java列表框选项事件类
2.4.3 模型层类Constants.java sql server数据库连接信息
DBUtil.java连接数据库操作类
DaoPattern.java操作数据库信息功能类(底层模型类)
InfoSelect.Java查询数据库信息类(业务逻辑处理类)
InfoUpdate.java更新数据库信息类(业务逻辑处理类)
三、开发实现
3.1 开发说明开发环境:eclipse
数据库:sql server 2008
项目UI界面使用eclipse的windowBuilder插件来设计
使用JDBC方式连接数据库
信息管理系统所涉及到的照片信息的处理,在项目路径下开一个文件夹picture,用来存储成员的照片信息,而在数据库中存储的是对应照片的路径。
使用mvc模式,按照功能和类型分类分包,使结构清晰。
提高系统安全性,系统要登录成功才能操作,对数据的增删改只有指定管理员才可以操作,以防止其他使用者随意更改数据,保证数据的安全性。
程序框架图
3.2 功能实现
3.2.1 数据库操作方面(对数据库操作即是crud)
将JDBC技术所需使用的数据库连接信息(数据库驱动程序,URL,用户名,密码等)封装成一个类,方便项目在不同数据库下使用时进行数据库信息修改。
设计一个操作数据库的模型类DaoPattern.java,里面是操作数据库信息的底层模型,包含两个方法,更新(包含增删改)数据库中的信息,和查询数据库中的信息,其中查询数据库信息返回的是结果集。这两个方法不提供具体的增删改查的sql语句,反而是把这些功能交到数据库业务逻辑层去实现。
设计操作数据库的业务逻辑类(InfoUpdate.java;InfoSelect.Java),这些类根据对数据库信息的不同操作而提供不同的sql语句来操作数据库。
对数据库信息的查询,尽量避免使用*查询所有信息而减慢查询的相应速度。
3.2.2 照片信息处理方面
在项目路径下开一个文件夹picture,用来存储成员的照片,而数据库中存储的是对应照片的路径。
添加/修改照片的处理:
点击选择照片按钮时,弹出打开文件选择对话框,此打开文件选择对话框设置文件过滤器,显示图片文件
对所选择的图片文件,还要做处理,处理所选择的文件是否存在
图片文件存在:还要做处理,处理项目路径下picture文件夹是否存在与当前图片文件同名的文件不存在同名文件:将所选择的图片复制到picture文件夹下,并获取图片路径,将路径添加到数据库中,并在标签上显示该照片
存在同名文件:提示用户所选文件不可用,要么更改所选文件的名称,要么另选文件
查询照片的处理:
从数据库中取出照片的路径,根据此路径创建图标图像对象:public ImageIcon(String filename) 根据指定的文件创建一个 ImageIcon
设置此图标图像的缩放,照片以适当大小显示在相应位置
将照片显示在标签上
3.2.3 登录模块输入学号和密码,选择登录的身份,点击“登录”按钮
初始学号是:111111111,初始密码:123456,初始身份:管理员
若学号为空,弹出提示对话框,提示“学号不能为空”
若学号不为空:但输入的学号不存在,提示“信息不存在”
而若是输入的信息不正确,则提示“您的信息有误!请重新输入”
若信息无误,释放登录界面,同时对用户权限进行设置;进入主界面,并显示当前使用者信息
若登录的是管理员,将“修改密码”, “添加成员信息”,“删除成员信息”,“修改成员信息”等菜单项设置为可编辑,允许用户操作
而若登录的是普通成员,则无法进行 修改密码 和 增删改信息操作
“重置”按钮:所以内容还原成默认
3.2.4 修改密码模块此模块只有管理员才可操作
若选择的是“设置”菜单下的“修改密码”菜单项,则进入修改密码界面
输入要修改密码的学号,设置新密码,并再次输入密码确认。
点击“修改”按钮:
如果新密码与确认密码不匹配,弹出提示对话框,提示“请准确输入您要修改的密码”
如果两个密码匹配:而要修改密码的学号不存在,弹出提示对话框提示“该学号不存在”
而若存在,会返回是否成功的信息。如果修改成功,弹出提示对话框提示“密码修改成功”,如果不成功,则提示“密码修改失败,请确认输入的信息是否正确!”
若要继续修改,点击“重置”按钮
点击“重置”按钮:清空文本框内容
3.2.5 查询成员信息模块
若选择的是“操作”菜单下的“查询成员信息”菜单项,有多种查询方式。
选择查询条件:年级、性别、系别;点击“泛查找”按钮
根据条件到数据库中查询信息,返回满足条件的学号如果集合为空,则没有查询结果,弹出对话框提示“找不到信息”
如果集合不为空,则有查询结果,在查询模板左侧的列表框中显示查询后的学号,并记录满足条件的学号共有几条
根据学号查询:
输入所要查询的学号,点击“根据学号查找”按钮
或在列表框中选择要查询的学号
如果是输入学号查询,还有防止输入的学号为空的情况。
获取输入或选中的学号,到数据库中去查询,返回查询后的结果集如果结果集为空:没有查询到任何信息。弹出提示对话框提示“该学号不存在,请确认后重新输入!”
如果结果集不为空:从结果集中取出信息显示在界面的相应位置。特别地,对于照片的处理,根据获取的照片路径创建图标图像对象,同时为了照片以适当的大小显示,设置了图像的缩放,然后把照片显示在对应标签上
3.2.6 添加成员信息模块填写成员基本信息,如果需要上传照片,点击“选择图片”按钮,将会弹出打开文件选择对话框,此文件选择器设置了文件过滤器(打开图片文件),并对于 所要打开的文件,先判断其在当前路径下是否存在。在存在的情况下,将其文件复制到项目路径下的picture文件夹中,但前提也要判断改文件夹是否存在同名文件。复制好后获取该文件在项目路径下的路径,存入到数据库中
点击“录入”按钮:录入 信息前,对于数据库中某些不允许为空的字段,先强制用户必须填写;然后对于所录入的学号,先到数据库中查询该学号是否已经存在。在不存在的情况 下,将填写的信息录入数据库中,并返回操作是否成功的提示
点击“重置”按钮:将内容清空还原成默认
3.2.7 修改成员信息模块用户要修改信息,必须先输入要修改信息的学号
点击“搜索”按钮:但前提要保证学号不为空,然后根据用户输入的学号,到数据库中去查询该学号成员的基本信息,返回结果集
如果结果集为空,弹出对话框提示“该学号不存在!请确认后重新输入!”
如果结果集不为空,将查询到的信息显示出来。用户就可以根据需要修改某些信息,对于照片的修改,与照片添加的操作类似,但有不同的一点是,一旦更换了照片,那么之前提供的照片要删除掉
点击“录入修改”按钮:获取用户修改后的信息,到数据库中去修改,并返回是否修改成功的提示信息
点击“重置”按钮:将全部内容清空还原默认
3.2.8 删除成员信息模块用户要删除信息,必须先输入要删除信息的学号
点击“搜索”按钮:但前提要保证学号不为空,然后根据用户输入的学号,到数据库中去查询该学号成员的基本信息,返回结果集
如果结果集为空,弹出对话框提示“该学号不存在!请确认后重新输入!”
如果结果集不为空,将查询到的信息显示出来。
点击“删除”按钮:为防止用户使用时由于某些不小心操作而删除数据,提高系统的安全性。所以在点击删除按钮的时候,还要弹出确认对话框,咨询用户是否删除。用户确认删除后,才到数据库中去删除信息,并返回删除是否成功的提示
点击“重置”按钮:文本内容清空还原默认