每天记录学习,每天会有好心情。*^_^*
今天记录的项目是自习室管理系统,这个项目是这么回事:习室管理系统的设计、开发和测试工作,该系统基于B/S结构,利用现有校园一卡通系统,通过JAVA和mysql数据库等软件技术,实现自动分发座位、选择交换座位、座位保留超时管理和图形动画显示座位位置及状态等功能,解决高校图书馆自习室普遍出现的由于抢座、占座而导致的座位利用率低等问题。。
做这个项目的时候,我们需要用到SSM(MYECLIPSE)框架,开发工具选用最拿手的MYECLIPSE。
自习室管理系统项目是一个 后台项目。
开发系统时,需求分析是必不可少的一个环节。自习室管理系统拥有的登录角色包括了管理员、用户注册。
每个账号设置身份、账号、密码是必不可少的,管理员、用户注册中都包含这些登录角色该有的字段。
总结得出该系统所有数据为:管理员(admin)、用户注册(yonghuzhuce)、座位分发(zuoweifenfa)、座位交换(zuoweijiaohuan)
管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码 quanxian | VARCHAR(255) | | 权限
用户注册表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码 quanxian | VARCHAR(255) | | 权限
座位分发表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 座位分发id kongzuoxuanze | VARCHAR(255) | | 空座选择 zuoweitiaozheng | VARCHAR(255) | | 座位调整 xingming | VARCHAR(255) | | 姓名 zuoweiweizhi | VARCHAR(255) | | 座位位置
座位交换表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 座位交换id jiaohuanjia | VARCHAR(255) | | 交换甲 jiaohuanyi | VARCHAR(255) | | 交换乙 shijian | VARCHAR(255) | | 时间 jiayuanweizhi | VARCHAR(255) | | 甲原位置 yiyuanweizhi | VARCHAR(255) | | 乙原位置
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ---------------------------- -- Table structure for ggzixishiguanlixt -- ---------------------------- DROP TABLE IF EXISTS `t_admin`; CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`quanxian` VARCHAR(255) DEFAULT NULL COMMENT '权限',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员'; -- ---------------------------- DROP TABLE IF EXISTS `t_yonghuzhuce`; CREATE TABLE `t_yonghuzhuce` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户注册id',`xingming` VARCHAR(255) DEFAULT NULL COMMENT '姓名',`nianling` VARCHAR(255) DEFAULT NULL COMMENT '年龄',`xingbie` VARCHAR(255) DEFAULT NULL COMMENT '性别',`zhuanye` VARCHAR(255) DEFAULT NULL COMMENT '专业',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户注册'; -- ---------------------------- DROP TABLE IF EXISTS `t_zuoweifenfa`; CREATE TABLE `t_zuoweifenfa` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '座位分发id',`kongzuoxuanze` VARCHAR(255) DEFAULT NULL COMMENT '空座选择',`zuoweitiaozheng` VARCHAR(255) DEFAULT NULL COMMENT '座位调整',`xingming` VARCHAR(255) DEFAULT NULL COMMENT '姓名',`zuoweiweizhi` VARCHAR(255) DEFAULT NULL COMMENT '座位位置',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='座位分发'; -- ---------------------------- DROP TABLE IF EXISTS `t_zuoweijiaohuan`; CREATE TABLE `t_zuoweijiaohuan` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '座位交换id',`jiaohuanjia` VARCHAR(255) DEFAULT NULL COMMENT '交换甲',`jiaohuanyi` VARCHAR(255) DEFAULT NULL COMMENT '交换乙',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',`jiayuanweizhi` VARCHAR(255) DEFAULT NULL COMMENT '甲原位置',`yiyuanweizhi` VARCHAR(255) DEFAULT NULL COMMENT '乙原位置',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='座位交换';
添加座位分发模块:
在zuoweifenfaController中定义tianjiazuoweifenfaact接收页面传入的座位分发参数,定义为zuoweifenfa。其中zuoweifenfa包含字段:空座选择,座位调整,姓名,座位位置,使用tianjiazuoweifenfaact将该座位分发对象存入数据库中,在zuoweifenfaMapper中定义了insert方法,匹配数据库中的insert into zuoweifenfa语句实现将座位分发数据存入数据库的操作。该部分核心代码如下:
通过zuoweifenfadao的insert方法将页面传输的座位分发添加到数据库中 zuoweifenfadao.insert(zuoweifenfa);
将添加座位分发成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加座位分发成功");
返回座位分发管理界面
return "forward:/tianjiazuoweifenfa.action";
查询座位分发模块:
座位分发的查询模块实现方式为,在页面中发起zuoweifenfaguanli.action请求。通过该请求,响应服务器zuoweifenfaController类中的zuoweifenfaguanli,在该方法中通过selectByexample进行数据的查询操作。将所有的座位分发信息查询后,保存到request中的zuoweifenfaall中,在页面中进行展示,返回zuoweifenfaguanli.jsp,该部分核心代码如下所示:
生成座位分发样例类,通过example定义查询条件 ZuoweifenfaExample example = new ZuoweifenfaExample();
通过zuoweifenfadao的selectByExample方法查询出所有的座位分发信息 List zuoweifenfaall = zuoweifenfadao.selectByExample(example);
将座位分发信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("zuoweifenfaall", zuoweifenfaall);
返回座位分发管理界面
return "forward:/zuoweifenfaguanli.action";
修改座位分发模块:
在页面完成座位分发的修改信息填写后,将该部分数据传入xiugaizuoweifenfa.action地址,并通过post进行提交。提交后在zuoweifenfaController中通过xiugaizuoweifenfa进行接收,将所有字段封装为一个座位分发实体。并将该实体传入zuoweifenfadao中的updateByPrimaryKeySelective方法中,在该方法中定义了通过座位分发id更新其余座位分发的字段,该部分字段包括空座选择,座位调整,姓名,座位位置,该部分核心代码如下所示:
通过zuoweifenfadao的修改方法根据id修改对应的座位分发 zuoweifenfadao.updateByPrimaryKeySelective(zuoweifenfa);
将修改座位分发成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改座位分发信息成功");
返回座位分发管理界面
return "forward:/zuoweifenfaguanli.action";
删除座位分发模块:
在管理页面中,点击删除。页面将通过a标签的href属性,使用get方法将该座位分发
的id上传到服务器中,在服务器中通过zuoweifenfaController类中的shanchuzuoweifenfa进行接收,之后调用zuoweifenfaMapper中的deleteByPrimaryKey方法根据ID进行删除。将删除信息保存到request的message中,在页面给出用户删除成功的提示信息,该部分核心代码如下:
通过zuoweifenfadao的删除方法根据id删除对应的座位分发 zuoweifenfadao.deleteByPrimaryKey(id);
将删除座位分发成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除座位分发成功");
返回座位分发管理界面
return "forward:/zuoweifenfaguanli.action";