OA系统:Office Automation System :办公自动化系统
项目准备:
1.开发工具和数据库操作软件
2.分析项目需求(画出时序图),设计数据库
3.根据需求搭建框架,依照MVC分层思想在开发工具中准备
4.导入所需工具、jar文件等
5.开整
数据库设计表与表之间的关联:(一键导入SQL)
oracle导入sql
根据MVC分层
M层:模型层,存放Serlvet
V层:视图层,存放页面元素
C层:连接层,放JDBC文件
需要导入的其他jar文件
1.Junit测试包
2.Oracle数据库驱动包
3.其他工具包(Gson包等)
Myeclipse如何使用JUit进行测试
1.导入Juit文件
使用
一、添加部门的逻辑实现
1.点击新增部门
2.输入新增部门的信息,点击提交
3.提交入库,
If(成功){执行查询部门操作最后展示到页面}
else{返回到新增界面,并带个添加失败提示}
二、查询所有部门逻辑实现
1.点击部门管理,(首先这个时候已经发送了请求给后台)
2.后台查询到结果,并将数据保存在作用域中
3.后台响应查询结果到前台页面,前台页面中接收展示给用户
if(查询成功XXX!=null){发送到前台页面}
else{服务器繁忙,请稍后再试}
三、删除部门逻辑实现
1.点击部门管理,先执行一次查询所有部门
2.点击删除部门,提示是否确认删除,点击确认执行删除,否无恙
3.If(删除成功){执行一次查询部门操作,并返回部门管理页面}
else{在当前页面提示删除失败}
四、更新部门逻辑实现
1.点击部门管理(首先要执行一次查询所有部门)
2.点击要修改的部门
3.修改信息,提交入库
if(修改成功){重定向到部门管理进行展示} else{在当前页面显示修改失败}
五、添加员工逻辑实现
1.设计好数据库中的表,多表之间的关联要确认好,在java实体类中确定属性之间的关联
2.静态页面展示给用户的时候,员工的所属部门和领导编号最好用选择框让用户选择,以及日期最好用日期类让用户点,不要输入,然后用户输入提交
3.后台查询添加是否入库
if(添加成功){重定向到员工管理展现给用户}
else{当前界面展示添加失败(最好给出失败原因)}
富文本插件使用
1.将文本插件拷贝到WEB项目的根目录下,然后在需要使用文本插件的页面进行引用
2.然后为文本插件指定id名和参数
3然后在需要需要使用编辑器的插件文字指定id即可
日历插件使用
1.将日历插件拷贝到WEB项目的WEBRoot根目录下,然后在需要使用日历插件的页面进行引入
2.调用:在需要使用日历插件的文本框中添加事件
下拉列表动态显示信息
从数据库中查询获取,在jsp页面先引入Jstl,然后通过<C:foreach>标签来遍历,再将用El表达式获取指定数据
查询所有员工逻辑实现
点击查询所有员工,发送请求给指定的servlet,通过反射调用方法,servlet中调用业务层,业务层调用dao层,dao层把查询到的数据封装到集合对象中,返回给业务层,再通过servlet转发到jsp页面,jsp页面中将数据取出,并展示
查询条件的记忆功能
在servlet中将查询到的请求内容存储到四大作用域任一中(一般使用请求转发到jsp页面,存储在request中),在jsp页面通过jstl标签库将数据取出放到文本的value内
多条件查询逻辑实现
在form表单添加提交按钮到指定servlet中并拼接上方法名,servlet通过反射调用指定查询方法,查询方法调用业务层处理逻辑,业务层调用dao层处理数据库操作(动态追加SQl语句),dao层将数封装成实体类对象并保存在集合对象中回给service,service将数据返回给指定servlet,servlet将数据添加到request中,然后转发给jsp页面,在jsp页面通过jstl标签库将数据展示
Dao层sql语句拼接
判断追加的条件是否为空,以及日期转换的处理
删除员工逻辑实现
1.为了程序更加人性化,添加单击时间,是否删除
2.点击确定,执行删除操作,发送请求到指定的servlet,并附带删除员工的id(该id是之前用jstl标签库获取到的)
3.Servlet通过反射调用指定方法,然后调用业务层,业务层调用dao层,dao层执行数据操作
更新员工逻辑实现
在员工管理界面点击修改按钮,jsp会发送请求到指定servlet,然后通过id查询员工,查询到员工信息之后,返回到servlet中,并添加到作用域中,然后再转发到update.jsp,修改页面通过El表达式获取各个属性的值显示到页面中,然后进行修改
最后点击提交,发送请求到指定servlet获取请求数据,并且调用service层,业务层调用dao层,对数据库进行相应操作,操作完毕后转发或重定向到查询所有员工页面(应添加修改成功or失败提示信息)
整个更新操作中需要注意:数据库设计表时候各表的类型和表之间的关联关系,以及表单约束
其他功能不再上传,整个项目使用纯JSP+Servlet,只是为了再次理解MVC分层思想