基于B/S模式下的JAVA智能小区规划系统
最近了解了智能小区规划项目,在这个平台记录一下这个智能小区规划项目,方便以后再次使用或学习的时候能够及时的翻阅。在完成这个项目的时候,考虑了很多框架。最终决定选用SSM(MYECLIPSE),该框架具有极强的移植性,多平台性,便于操作性等优点。此框架能在MYECLIPSE开发工具中完美的编写和运行,智能小区规划为一个 后台项目。这个项目的描述是这样的:智能小区是将在一定地域范围内多个具有相同或不同功能的建筑物(主要是指住宅小区)按照统筹的方法分别对其功能进行智能化。在提供安全、舒适、方便、节能、可持续发展的生活环境的基础上,实现资源充分共享,统一管理和控制,提高小区性能价格比指标。
在对智能小区规划项目进行需求分析的时候,得出系统的登录角色包括了管理员、用户。对应用户可以通过登录自己的账号,进行入系统。系统对不同角色拥有不同权限。
总结得出该系统所有数据为:管理员(admin)、用户(yonghu)、管理中心(guanlizhongxin)、系统分解(xitongfenjie)
管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
用户表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 用户id xingming | VARCHAR(255) | | 姓名 nianling | VARCHAR(255) | | 年龄 xingbie | VARCHAR(255) | | 性别 quanxian | VARCHAR(255) | | 权限 zhuzhi | VARCHAR(255) | | 住址 username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
管理中心表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理中心id yonghuguanli | VARCHAR(255) | | 用户管理 tingchecxhangguanli | VARCHAR(255) | | 停车场管理 anfangguanli | VARCHAR(255) | | 安防管理 wuyeguanli | VARCHAR(255) | | 物业管理
系统分解表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 系统分解id jiatingzhineng | VARCHAR(255) | | 家庭智能 xiaoquwangluo | VARCHAR(255) | | 小区网络 tongxunxitong | VARCHAR(255) | | 通讯系统 duijiangxitong | VARCHAR(255) | | 对讲系统
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ---------------------------- -- Table structure for ggzhinengxiaoqugh -- ---------------------------- 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 '密码',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员'; -- ---------------------------- DROP TABLE IF EXISTS `t_yonghu`; CREATE TABLE `t_yonghu` (`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 '性别',`quanxian` VARCHAR(255) DEFAULT NULL COMMENT '权限',`zhuzhi` 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_guanlizhongxin`; CREATE TABLE `t_guanlizhongxin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理中心id',`yonghuguanli` VARCHAR(255) DEFAULT NULL COMMENT '用户管理',`tingchecxhangguanli` VARCHAR(255) DEFAULT NULL COMMENT '停车场管理',`anfangguanli` VARCHAR(255) DEFAULT NULL COMMENT '安防管理',`wuyeguanli` VARCHAR(255) DEFAULT NULL COMMENT '物业管理',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理中心'; -- ---------------------------- DROP TABLE IF EXISTS `t_xitongfenjie`; CREATE TABLE `t_xitongfenjie` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '系统分解id',`jiatingzhineng` VARCHAR(255) DEFAULT NULL COMMENT '家庭智能',`xiaoquwangluo` VARCHAR(255) DEFAULT NULL COMMENT '小区网络',`tongxunxitong` VARCHAR(255) DEFAULT NULL COMMENT '通讯系统',`duijiangxitong` VARCHAR(255) DEFAULT NULL COMMENT '对讲系统',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='系统分解';
添加系统分解模块:
系统中存在添加系统分解功能,通过点击添加系统分解可以跳转到该功能模块,在该功能模块中,填写对应的系统分解信息。系统分解包含信息家庭智能,小区网络,通讯系统,对讲系统,填写完所有信息后,通过post方法将数据提交到tianjiaxitongfenjie.action中,该地址将在服务器中xitongfenjieController类中的tianjiaxitongfenjieact方法中进行响应。响应结果为,获取所有的系统分解信息,封装一个xitongfenjie类,使用xitongfenjieController类中定义的xitongfenjiedao的insert方法,将系统分解数据插入到数据库的xitongfenjie表中。并给出用户提示信息,添加系统分解成功,将该信息保存到request的message中,该信息将在页面中进行展示。该部分核心代码如下:
通过xitongfenjiedao的insert方法将页面传输的系统分解添加到数据库中 xitongfenjiedao.insert(xitongfenjie);
将添加系统分解成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加系统分解成功");
返回系统分解管理界面
return "forward:/tianjiaxitongfenjie.action";
查询系统分解模块:
在浏览器中进入系统分解查询页面时,此时浏览器的地址栏为xitongfenjieguanli.action,该地址将响应xitongfenjieController类中的xitongfenjieguanli,在该方法中,通过selectByexample方法获取所有的系统分解信息,并将该信息保存到request中,在页面进行循环展示。该部分核心代码如下:
生成系统分解样例类,通过example定义查询条件 XitongfenjieExample example = new XitongfenjieExample();
通过xitongfenjiedao的selectByExample方法查询出所有的系统分解信息 List xitongfenjieall = xitongfenjiedao.selectByExample(example);
将系统分解信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("xitongfenjieall", xitongfenjieall);
返回系统分解管理界面
return "forward:/xitongfenjieguanli.action";
修改系统分解模块:
在页面完成系统分解的修改信息填写后,将该部分数据传入xiugaixitongfenjie.action地址,并通过post进行提交。提交后在xitongfenjieController中通过xiugaixitongfenjie进行接收,将所有字段封装为一个系统分解实体。并将该实体传入xitongfenjiedao中的updateByPrimaryKeySelective方法中,在该方法中定义了通过系统分解id更新其余系统分解的字段,该部分字段包括家庭智能,小区网络,通讯系统,对讲系统,该部分核心代码如下所示:
通过xitongfenjiedao的修改方法根据id修改对应的系统分解 xitongfenjiedao.updateByPrimaryKeySelective(xitongfenjie);
将修改系统分解成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改系统分解信息成功");
返回系统分解管理界面
return "forward:/xitongfenjieguanli.action";
删除系统分解模块:
删除系统分解功能的实现方式为,通过点击删除系统分解按钮,向服务器发起get请求。请求中包含系统分解的id信息,在xitongfenjieController中使用int接受该id,并将该id传入xitongfenjiedao的deleteByPrimaryKey方法中。该方法的作用为根据id删除对应系统分解。最后将删除系统分解成功的信息返回页面,该部分核心代码如下:
通过xitongfenjiedao的删除方法根据id删除对应的系统分解 xitongfenjiedao.deleteByPrimaryKey(id);
将删除系统分解成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除系统分解成功");
返回系统分解管理界面
return "forward:/xitongfenjieguanli.action";