一个简易的设备管理系统,包含了管理员登录注册、设备录入、设备状态管理功能,具体状态有购买时、正在运行、正在修理和已报废。
开发环境:jdk 运行环境:jvm
运行平台:无限制 编辑器:eclipse
语言:java 工具:swing
数据库:mysql
manager表 (管理员信息,主要用于登录、注册)
equipment表 (记录设备信息)
e_buy表 (记录购买的设备信息)
e_run表 (记录正在运行的设备信息)
e_scrap表 (记录报废的设备信息)
e_repair表 (记录修理的设备信息)
本系统采用两层系统架构模型,view视图层负责界面的表示、采集信息传递给dao数据处理层、并从dao层接收数据更新界面,dao数据处理层负责信息的接收、处理和返回
1.view视图层
StartFrame
负责登录、注册界面的显示
包含name、pwd文本输入框和login(regist)、exit按钮
当点击login(regist)按钮时,检测name、pwd中数据是否为空,如果不为空,则将数据传递到StartDao中处理数据;
当regist成功时,跳转入login界面
当login成功时,进入ManageFrame界面
当点击exit按钮时,系统退出
ManageFrame
框架的content panel为JTabbedPane,其有5个选项卡:
(1)equipment负责所有设备的名称、运行状态的显示和状态管理,状态有①无状态 ②run ③repair ④scrap
当点击切换状态的时候,会弹出相应对话框,记录对应状态所需要登记的信息Info
(2)buy负责登记购买的设备信息
(3)running负责显示正在运行的设备信息
(4)repair负责显示正在修理的设备信息
(5)scrap负责显示已报废的设备信息
选项卡中的equipment和buy界面由ManageFrame负责创建,对应方法为createEquipmentPanel()和createBuyPanel(),通过返回自定义的JPanel匿名内部类创建
选项卡中的running、repair、scrap界面分别是InfoRunPanel、InfoRepairPanel、InfoScrapPanel类的实例,这些类继承自抽象类InfoPanel,在抽象类中定义抽象方法getHeaders()、getTableData()获取JTable表头、数据对象,由其子类重写对应的方法;定义具体方法createScrollPane()负责创建JScrollPane可滚动面板装载createTable()创建的JTable对象,createSelectButton()负责创建搜索按钮
2.dao数据处理层
StartDao
包含方法login和regist
login方法,检测用户输入的用户名是否存在、密码是否正确,因为有“account not exists”,“incorrect password”和“success”三种状态,所以返回状态类型设置为String
regist方法,登记用户名和密码,状态有success、fail两种,所以返回状态类型设置为boolean
ManageDao
包含equipment、buy、run、repair、scrap信息的增删改查
查询方法中获取的数据,由Vector容器打包后返回
InfoRepairDao、InfoRunDao、InfoScrapDao 继承自抽象类AbstractInfoDao
包含方法查询、有条件查询、无条件查询,有条件查询是在初始化获取数据库中所有对应信息时调用,有条件查询是在输入查询条件后获取符合条件的数据集时调用
2.util工具包
ComponentUtil 包含自定义一些常用swing组件
ConnectionUtil 数据库连接类
DatabaseXmlParser 解析db.xml,获取数据库配置信息
DateChooser 包含日期选择控件
2.bean javabean 封装各种对象
(1) 注册、登录
注册
登录
(2) 录入购买的设备信息
输入设备信息
在equipment中查看设备
(4) 管理设备状态
例:设置状态为run
(5) 查看设备状态
输入panda,select
输入E450,select
《设计模式》 清华大学出版社 2011年10月第1版 刘伟 胡志刚 郭克华