我的第一个JavaWeb项目-----人力资源管理系统
我的第一个JavaWeb项目-----人力资源管理系统
各位读者朋友你们好,我是你们的新朋友IT黑铁!第一次在网络上分享我的学习过程,这是我大二下期努力独自完成的数据库课程设计项目,由于时间关系,只完成了网站后台的增、删、改、查、统计,但在这过程中仍然有不少值得记录与分享的经验!在阅读完毕后,如有需要帮助、指正、建议,我将不胜感激地与您讨论或者帮助您,我们共同进步!
完成效果:
开发步骤:
一、 完成相关技术学习(在下是通过B站黑马程序员的javaweb视频课程学习)
这里附上视频链接,有需要的朋友可以查看:
黑马程序员JavaWeb全套基础教程,java web从入门到项目实战(IDEA版javaweb)_哔哩哔哩_bilibili
二、 完成项目需求分析,概念结构分析、关系模式、关系表的建立,最后建立关系数据库,建立表及所需视图。
图2-1系统功能模块图
图2-2实体分析
图2-3实体关系分析
图2-4系统总体E-R图
图2-5关系模式建立
图2-6关系表结构建立
图2-7使用DataGrip建立数据库
三、 完成前期的准备工作:确定所需技术、编码平台、服务器软件、项目管理方案、所需静态页面、所需基本开发工具类,链接数据库后,试运行开发软件。
所需技术:MySQL、Java(Java基础、注解、反射、单元测试)、(HTML、CSS、JavaScript、BootStrap、Jquery、EL、JSTL)、Tomcat、Maven项目管理、MVC开发模式、JDBC(数据库连接、数据库连接池技术)
编码平台:IntelliJ IDEA
服务器软件:Tomcat 7
项目管理方案:Maven 3.8.6
所需静态页面:
图3-1静态资源
基本开发工具类:
图3-2工具类
四、 着手编写Java对应数据库的实体类
根据数据库表的类型来声明成员变量,使用IDEA的快捷键Alt+Insert快速生成对应的构造函数、toString方法、getter和setter方法,效果如下图4-1。
图4-1实体类
五、 开发第一个功能
(1) 分析业务功能逻辑
图5-1添加员工功能分析
(2) 更改静态页面
将html文件更改成jsp文件,只需将html文件内容复制,在第一行添加如图5-2的语句。
图5-2html转jsp
第一行:必需,网页请求头
第二行:非必须,引用JSTL,Java标签库,方便阅读及编写。
设置表单action属性值。
(3) 编写功能对应的Servlet层代码
图5-3 addWorkerServlet代码
(4) 编写相应的Service层代码
图5-4 WorkerService接口和其实现类代码
(5) 编写Dao(data access oboject)层的代码
图5-5 WorkerDao接口及其实现类
(6) 在每个逻辑层插入输出语句,方便迅速查找到错误点。
(7) 运行
六、 如法炮制依次完成该页面其余功能编写
七、 将一个页面功能粘贴复制到其他页面,并建立一个更改过程,滴水不漏按照更改过程进行更改,减少查错浪费的时间
图7-1 更改过程
八、 留存的问题
(1) 在数据库里表结构里使用了日期date类型,那么编写实体类时如果采用Date类型声明,那么将会出错,百度的解决方案,由于时间关系,我并没有去追根寻底。如果采用String类型声明,那么当添加过来的日期是空值将会出错,据百度所说这是一个来自jdbctemplate的bug,同样我也没有去解决。
(2) 当点击了左侧工具栏选择一个功能模块后,页面刷新后左侧工具栏将会收起。我猜想这应该需要使用会话技术比较好做,当然采用对servlet响应回来的数据进行处理依然能够实现。
(3) 数据库表设计的并不好,例如:在后台登录,应为管理员或人事专员单独设置一个表,用来登录,而不是去查user表。
(4) 还没有设置404页面和500页面。
九、 优化项目
(1) 数据库的优化,如索引的建立。
(2) Java代码的优化,随着技术手段的增加,代码的丑陋得到改善。
(3) 功能的优化。
(4) 界面的优化。
十、 总结
在项目完成后中,我发现了一个严重的问题,就是一半时间我在改bug,还有四分之一时间在修改数据库,只有四分之一时间在编写代码,这是极其低效的。在第一次开发完毕后,建立了找bug的行为流程,编写的代码的行为流程,设计数据库表、视图的准则,对代码编写规范和精确编码的内涵,以减少找bug、修改数据库等障碍。通过这次项目开发,深刻了解了一个项目的开发流程,及所必须的前期准备操作,这为我后面的项目学习打下了结实的基础。
以上就是我的人力资源管理系统的分享,支持开源,有需要源码的小伙伴,请私信或评论,我会及时分享与你