档案管理系统项目总结
- 项目准备
查看需求文档,根据需求分析自己负责的模块需要做的功能,并且按照需求建立数据库的关系表;
熟悉项目的模块结构,组内讨论,与有关联的组员商量并确定好分工,预估可能产生的冲突
- 员工管理模块
- 创建基础组件
通过MyBatis-generator逆向生成数据库对应的domain、mapper,根据自己任务的需求保留需要的sql语句,去除与需求不相关的sql;
创建的对应的service层接口及其实现类,以及对应的controller控制层;
准备好需要展示数据的jsp页面,处理好页面布局的问题,设置相应的功能按钮,并且根据需要绑定对应的事件,通过外部js文件实现
- 高级分页查询
- 分页查询
抽取公共的分页查询对象BaseQueryObject,提供分页查询需要的字段page和rows;
抽取公共的分页查询service
页面使用easyui的分页插件,在datagrid中设置属性pagination:true,根据需要还可以引入easyui的汉化插件
- 关键字及条件查询
准备一个employee的query对象,提供对应的字段keyword、phoneNum、minDate和maxDate 用来接收前台页面传给后台的关键字、电话号码及日期;
在employeeMapper.xml中添加关键字keyword的模糊查询,phoneNum的高级查询,以及入职时间的范围查询,通过where和if标签来实现sql语句查询条件的拼接
- 添加
通过form表单提交前台数据,提交数据前通过validatebox对员工数据中的用户名、电话、身份证等格式进行验证;
关联的部门数据通过treebox进行展示,employeMapper.xml中添加部门的关联查询;
学历同部门,通过与查询数据字典表进行展示
- 修改
首先选中行,并将选中行的数据回显到form表单,通过隐藏id是否存在值判断是新增还是修改
- 删除
提供一个表示状态的字段state,删除采用逻辑删除,即修改state的值来展示员工状态是在职还是离职
- 部门管理模块
- 层级关系
部门存在上级部门与下级部门之间一对多的关系,Department中提供children字段来接收下级部门的集合,在departmentMappper.xml采用嵌套查询,查询上级部门及children;
前台用treegrid来展示部门的层级关系
- CRUD
基本业务逻辑与员工的CRUD相同;
- 心得总结
- 遇到的问题
模块功能整体难度不是特别大,主要是前台展示数据方面有很多小问题,另外就是关联查询上面遇到了不小的挑战,sql语句的书写和修改上面确实花了很多精力与时间,特别是部门表的自关联查询,刚开始没有搞清楚逻辑关系,确实是走了很多弯路;
另外这次项目遇到最大的问题还是项目集成的时候,由于与其他模块的组员缺乏有效沟通,导致关联业务上面出现了在分类管理查询上面的死循环,最终影响整个项目的功能完整性。
- 总结
这次项目之后,对于多模块开发的整体架构更加熟悉,同时因为首次使用myBatis进行开发,从最初的不熟练到渐渐熟悉,对于myBatis基本的CRUD已经掌握,另外对于easyui和js的使用也更加熟练,页面数据的排错能力也得到了增强;
团队协作方面,总结这次失败的主要原因是没有处理好与其他组员代码之间的冲突,平时开发过程中缺乏有效沟通,所以在今后开发中应该更加注重团队协作能力的培养,出现问题及时与他们沟通解决,及时更新代码,合理解决冲突。