(12)慕课OA系统(Mybatis项目案例,比较重要!)
文章平均质量分 86
在了解完Mybatis框架后的一个综合案例,其中包括数据库表设计,用户登录,权限设置,请假功能,审批功能。(不涉及Spring,SpringMVC,Springboot等框架)
小懒羊爱吃草
小枯林
展开
-
OA系统总结
系统总结1.原创 2021-06-27 03:13:31 · 3274 阅读 · 2 评论 -
OA系统二十七:通知公告二:获取通知公告,并在前台显示;
本篇博客的主要内容是:【通知公告】部分;本篇博客的主要内容是:获取(属于当前登录用户的)通知公告信息,并在前台显示。说明:(1)本篇博客内容很简单,没什么难点,快速浏览即可;(2)在【默认首页的一个设置:默认让首页显示【通知公告】的内嵌页面】的设置,这个不难,但还是需要注意下。目录一:获取,显示【通知公告】1.notice.xml中新增【查询的SQL】(Dao层的xml实现)2.在NoticeDao中增加【查询方法的定义】(Dao层的接口定义)3.创建Noti...原创 2021-06-24 23:50:28 · 2247 阅读 · 1 评论 -
OA系统二十六:通知公告一:在适当的时机,生成通知公告(即在sys_notice表生成对应的通知公告);(其中有String.format()字符串拼接的使用案例)
通知公告:就是,任意一个请假表单的审批流程中的,任意一个审批环节的状态发生变化后,向相关人等发送消息。通知公告对应着sys_notice表:然后,在OA系统十六:请假申请二:【请假申请】这个内嵌界面中【提交请假表单数据】的SQL语句和Dao层;中也已经编写了Notice实体类,NoticeDao接口,notice.xml实现。然后,经过分析,可以知道,在两种情况下,需要发送系统消息:(1)当某个员工提交请假表单的以后,就需要给对应的管理者(下一个审批环节的审批人)发送【审批的通知.原创 2021-06-24 20:37:37 · 751 阅读 · 0 评论 -
OA系统二十五:请假审批五:【点击“审批”后的审批弹出框】的后台逻辑;(审批结果提交的Controller层和前台文件设置)(PS:其中,有前后端交互的,后台是否需要返回JSON数据的小总结)
如果审批提交的前台文件不熟悉可以参考OA系统二十三:请假审批四:【请假审批】这个内嵌界面的前台文件;显示【点击“审批”后的审批弹出框】;(包括$(““)[0].reset();layui表格的设置,layui中弹出框附带数据的技巧等)这篇博客。...原创 2021-06-20 19:49:35 · 1187 阅读 · 0 评论 -
OA系统二十四:请假审批五:【点击“审批”后的审批弹出框】的后台逻辑;(审批结果提交的Dao层和Service层逻辑)
本篇博客的主要内容是:【请假审批内嵌页面】,【审批弹出框】的点击“确认提交”后的部分:原创 2021-06-20 11:16:34 · 1946 阅读 · 2 评论 -
恢复【谷歌浏览器开发者工具】默认设置
恢复【谷歌浏览器开发者工具】默认设置:原创 2021-06-14 12:41:25 · 5166 阅读 · 2 评论 -
Chrome的控制台(Console)的用法(超详细,还未细看)
为什么写了本篇博客:(1)在https://blog.csdn.net/csucsgoat/article/details/117811466中,遇到了Chrome的控制台(Console);本篇博客就是详细介绍Console的。本篇博客转载自:(1)Chrome 控制台console的用法(学了之后对于调试js可是大大有用的哦)说明:(1)这篇博客并没有看,当前也没必要看~~,以后有需要了再看也不迟啦Chrome 控制台console的用法(学了之后对于调试js可是...转载 2021-06-12 14:43:31 · 33827 阅读 · 0 评论 -
Chrome开发人员工具Network请求之HAR文件
为什么写了本篇博客:(1)在https://blog.csdn.net/csucsgoat/article/details/117811466中,遇到了Network中的【可以把请求导出数据为HAR格式】;本篇博客就是详细介绍HAR。本篇博客转载自:(1)HAR文件详细解析;作者首页地址是【https://horve.github.io/】(2)如何使用浏览器抓包,如何把请求保存为har文件;说明:(1)对本篇博客的内容并没有完全明白,目前来说,有点粗略的认识就可以了;以..转载 2021-06-12 14:25:49 · 5460 阅读 · 0 评论 -
HTTP协议:请求的资源的MIME类型
为什么写了本篇博客:(1)在https://blog.csdn.net/csucsgoat/article/details/117811466中,遇到了Network中的【Type:请求的资源的MIME类型:】;本篇博客就是详细介绍MIME类型的。本篇博客转载自:HTTP协议-MIME类型;作者是【scolia】。说明:(1)通过本篇博客,目前只需要知道【请求的资源的MIME类型】就是说明请求资源的资源类型就可以了;HTTP协议-MIME类型 每一个 URL ...转载 2021-06-12 13:43:48 · 2010 阅读 · 0 评论 -
Chrome浏览器开发者工具介绍;(包括,Network面板介绍,XHR等等)
为什么写了这篇博客:(1)原因一在【OA系统二十三:请假审批四】这篇博客中,加载【请假审批这个内嵌页面】后,这个内嵌页面中需要显示【待审批请假数据】的列表数据,而这些列表数据,是通过ajax请求从后台获取的;其中使用到了【Network中的XHR】来观测当前界面中的ajax请求:(2)原因二Chrome的开发者工具(F12)也非常重要,有必要较为彻底地了解一下;一:Chrome开发者工具本部分转载自:https://zhuanlan.zhihu.com/p/138922.转载 2021-06-12 09:43:50 · 7806 阅读 · 0 评论 -
OA系统二十三:请假审批四:【请假审批】这个内嵌界面的前台文件;显示【点击“审批”后的审批弹出框】;(包括$(““)[0].reset();layui表格的设置,layui中弹出框附带数据的技巧等)
本篇博客的主要内容是:待写……一.引入前台文件,情况初介绍(1)引入【请假审批】这个内嵌界面的前台文件,发布项目观察效果发布项目,并访问【请假审批】,观察效果:至于XHR和Network的详细介绍见:该博客待写…………………………(2)上面中表格是使用layui表格实现的;layui表格简介上面在layui的表格中显示数据的过程都是layui自动的帮我们完成的,我们只需要确保后台返回的数据格式满足【“code”,“msg”,“count”,“data”】..原创 2021-06-11 22:12:04 · 1927 阅读 · 6 评论 -
OA系统二十二:请假审批三:显示【请假审批】这个内嵌界面中【待审批请假数据】的Service层和Controller层;
本篇博客的主要内容就是:目录【请假审批界面】中【待审批请假数据】之:开发Service层【请假审批界面】中【待审批请假数据】之:开发Controller层测试一下【请假审批界面】中【待审批请假数据】之:开发Service层在LeaveFormService中增加getLeaveFormList()方法:LeaveFormService:仅仅保留了刚新增的getLeaveFormList()方法:package com.imooc.oa.service;i...原创 2021-06-10 20:47:49 · 739 阅读 · 1 评论 -
OA系统二十一:请假审批二:显示【请假审批】这个内嵌界面中【待审批请假数据】的Dao层;
本篇博客需要留意的点:(1)在Dao和XML这儿,一定要熟悉并且习惯使用Param("");目录【请假审批界面】中【待审批请假数据】之:开发Dao层(1)在LeaveFormDao中定义selectByParams()方法(2)在leave_form.xml中编写selectByParams()方法的实现(3)测试Dao层编写的是否OK(及时进行单元测试,这是一个很好的习惯)【请假审批界面】中【待审批请假数据】之:开发Dao层(1)在LeaveFormDao中定义s..原创 2021-06-10 19:37:21 · 812 阅读 · 2 评论 -
OA系统二十:请假审批一:审批功能概述;显示【请假审批】这个内嵌界面中【待审批请假数据】的SQL语句;
本篇博客的主要内容就是:目录1.【请假审批】功能需要实现什么?2.首先,需要开发的东西就是SQL语句:如何获取当前登录主管(部门经理或者总经理)所需要的审批的请假单数据?(1)审批列表中需要显示的值有:(2)什么样的请假信息可以在当前登录主管(部门经理或者总经理)的请假审批列表中显示?(3)实现的SQL语句1.【请假审批】功能需要实现什么?2.首先,需要开发的东西就是SQL语句:如何获取当前登录主管(部门经理或者总经理)所需要的审批的请假单数据?(...原创 2021-06-10 18:15:56 · 1753 阅读 · 0 评论 -
jQuery中Ajax函数:$.ajax()、$.post()、$.get()的使用、区别;
本篇博客目的是:在OA系统十九:请假功能五遇到了【layui.$.post():layui内置的jQuery的Ajax函数:向后台发起post请求;】;对此不太明白,故而本篇博客专门介绍jQuery中Ajax发起请求的内容。首先,关于jQuery和Ajax可以参考:JQuery对Ajax的支持:简介$.ajax(jsonExpression);JQuery对Ajax简化和封装简单示例;以及附近相关文章。目录0.预先介绍:jQuery AJAX 方法1.$.ajax() 方法...原创 2021-06-09 08:36:16 · 3909 阅读 · 2 评论 -
OA系统十九:请假申请五:【请假申请】这个内嵌页面的前台文件;设置【点击左侧菜单栏的“请假申请”后】在首页的“功能区”显示【请假功能】这个内嵌页面;
前面几篇博客完成了【请假申请】底层的业务代码;本篇博客就是编写对应的前台界面,并和后台的业务代码进行联系,通过网页向后台服务提交请求,完成【请假申请】前台到后台的整体流程。SweetAlert的第一篇博客:后台系统三:【预览】功能;(利用SweetAlert这个JS组件实现【图片弹出对话框】);Layui的介绍的第一篇博客:OA系统八:用户登录一:基于LayUI框架开发登录页;将请假申请的前台文件form复制进webapp目录下:说明:(1)form.html中引入layu.原创 2021-06-06 22:33:44 · 2925 阅读 · 7 评论 -
【logger.error()】介绍;(只是将日志打印在Console控制台)
本篇博客主要目的是:在OA系统十八:请假功能四:编写Controller代码;(实现请假申请的控制器;仅仅涉及新增部分的Controller代码)遇到了打印日志的问题;对其中的【logger.error()】不是特别清楚,本篇博客就是详细阐述这个问题。首先可以参考:MyBatis进阶一:MyBatis日志管理;(【如何输出日志到日志文件中】待补充……)这篇博客介绍了日志的基本内容。本篇博客参考自:【java】打印错误日志推荐使用logger.error("异常", e);作者是:【cool.转载 2021-06-06 08:44:02 · 8789 阅读 · 0 评论 -
OA系统十八:请假申请四:【请假申请】这个内嵌界面中【提交请假表单数据】的Controller层;
完成请假申请的Controller层:(仅仅是新增,也只能新增;因为目前的Dao层和Service层只提供了新增的功能)、说明:(1)原创 2021-06-05 05:08:12 · 1228 阅读 · 0 评论 -
getContextPath、getServletPath、getRequestURI、getRequestURL、getRealPath、getPathInfo的区别;URI和URL的区别比较;
本篇博客的目的是:在【OA系统十七:请假功能四:编写Controller代码;(实现请假申请的控制器;仅仅涉及新增部分的Controller代码)】中的遇到了【String uri = request.getRequestURI();】,而对【String uri = request.getRequestURI();】有点不清楚;本篇博客就是为了详细阐述这个问题的。本篇博客参考和转载的博客有:【request.getRequestURL()和request.getRequestURI()的区别】,.转载 2021-06-05 05:10:55 · 2897 阅读 · 0 评论 -
OA系统十七:请假申请三:【请假申请】这个内嵌界面中【提交请假表单数据】的Service层;(PS:在EmployeeDao中初次遇到@Param()参数设置)
本篇博客的内容:仅仅是用户在提交请假表单后,在数据库表中新增相应的记录!本篇博客的需要注意的点有:(1)根据业务需求,规划好整体的代码结构和编码逻辑;(2)一种目前认可的编程小细节;(PS:随着以后经验增多,可能会抛弃这种想法,或者有其他理解)(3)程序中的容易改变的常量,设置成外部调用的策略(以前做项目的时候遇到过,然后这也是非常常用的处理策略!!!!!)(4)每写完一个Service模块,也及时进行单元测试!!!这一步很重要,步步为营;;;否则到最后,前台到后台都编写好后..原创 2021-06-04 14:58:16 · 1747 阅读 · 2 评论 -
OA系统十六:请假申请二:【请假申请】这个内嵌界面中【提交请假表单数据】的SQL语句和Dao层;
1.创建实体类(这部分没什么东西,快速浏览即可)(1)LeaveForm类:与adm_leave_form表对应LeaveForm类:package com.imooc.oa.entity;import java.util.Date;/** * 实体类,与adm_leave_form表对应 */public class LeaveForm { private Long formId; private Long employeeId; private I原创 2021-06-03 21:26:33 · 1170 阅读 · 4 评论 -
OA系统十五:请假申请一:【请假申请】这个内嵌界面的数据库设计;(即请假申请这个线型工作流程的数据库设计!)
多级请假审批流程的数据库设计:具体详细流程要求可以看下:OA系统二:项目介绍:需求介绍;功能展示;。对于上面这种工作流程,【底层应该如何设计数据库表】,【程序中又该如何对这些数据进行控制】是重点!……………………………………………………(1)LeaveForm请假单表:员工在申请请假的时候,需要填写表单,表单信息存储在这个表中;(PS:Leave除了有离开的意思外;还有假期、准许的意思)(2)ProcessFlow审批任务流程表:员工将请假表单提交后,会自动的创建ProcessFl原创 2021-06-03 14:43:33 · 6106 阅读 · 0 评论 -
附加:关于Session对象的几点说明: invalidate() 方法;request.getSession(true/false/null)的区别;
本篇博客是为了解决:OA系统十四:注销功能;中的疑问而写的。目录(1)session基本情况(2)invalidate() 方法介绍(3)request.getSession(true/false/null)的区别;(1)session基本情况首先看下这篇博客:Servlet与JSP进阶五:用户会话Session对象,理解下session的基本情况;这部分重点是要明白:只要是一个浏览器窗口,在session有效期限内,不同的request对象就共用一个session对象。..转载 2021-06-02 04:23:04 · 1559 阅读 · 0 评论 -
OA系统十四:注销功能;
注销:就是把登录时所保留的信息全部给清除掉;其本质就是清除保存在Session中的数据,让session回到初始的状态;至于为什么只需要手动清除session对象中的数据,而request对象中的数据不用手动清除,这是因为request对象的生命周期的缘故;具体可以参考:Servlet与JSP进阶六:ServletContext全局对象;Java Web三大作用域对象总结;这篇博客。开始:Logout.html:package com.imooc.oa.controll原创 2021-06-02 04:21:21 · 1485 阅读 · 1 评论 -
OA系统十三:基于【MD5算法】+【加盐混淆】策略:对密码进行加密;
数据安全和系统安全十分重要。原创 2021-05-31 14:32:29 · 1378 阅读 · 1 评论 -
OA系统十二:设置默认首页顶部导航栏的用户名 ;(【基于Xml配置下,使用Mapper接口】的方式!!!!!)
本篇博客主要内容是开发【首页导航栏的用户名部门信息】:原创 2021-05-29 23:23:27 · 856 阅读 · 5 评论 -
附加:window.location.href = someUrl;(页面跳转的一点说明。)
sdf转载 2021-05-29 05:35:51 · 3714 阅读 · 0 评论 -
OA系统十一:登录成功后跳转到默认首页,初始化默认首页的左侧功能菜单;
目录0.【角色不同,功能不同】的SQL逻辑(这部分算是比较重要的!!!)1.首先:创建Node类:承接和存储【根据用户查询的功能】的结果2.然后,定义数据查询所需的【Mapper XML】和编写【SQL语句】3.然后,根据MVC设计原则,编写Model(模型)中的DAO类4.然后,根据MVC设计原则,编写Model(模型)中的Service类如何验证写的这个Service能不能用?本篇博客的内容需要随时修改。本篇博客内容说明:不同的用户登录系统后,系...原创 2021-05-29 05:09:30 · 3039 阅读 · 0 评论 -
OA系统十:默认首页的布局和结构分析;
在用户登录后,需要跳转到【系统首页】。本篇博客是介绍性文章,主要介绍【系统首页对应的前台文件】。目录1.默认首页显示效果2.默认首页布局和结构分析1.默认首页显示效果启动应用访问:(三栏式页面布局可以参考:一:项目需求分析;开发环境介绍;)2.默认首页布局和结构分析index.html:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"&原创 2021-05-24 18:30:01 · 1510 阅读 · 1 评论 -
附加:【LayUI】和【JQuery easyui】的区别;(有了更深的理解,随时补充……)
即,目前认为,layui和easyui都可以看成是一个UI框架,然后二者的用途基本类似,可以互相取代。easyui是基于jQuery的。自然layui和easyui就UI框架这个层面来讲,背后的基础都是JavaScript。目录1.【JQuery easyui】是什么?2.jquery easyui和layui的区别是什么?1.【JQuery easyui】是什么?本部分参考自:html中文网:jquery easyui是什么?jQuery EasyUI是一组基于jQue...转载 2021-05-21 20:40:51 · 1375 阅读 · 0 评论 -
OA系统九:用户登录二:实现用户登录的后台逻辑代码;完善前台登录页的提交和校验功能;
登录功能的后台逻辑代码。原创 2021-05-20 07:53:20 · 2219 阅读 · 3 评论 -
OA系统八:用户登录一:基于LayUI框架开发登录页;
一:LayUI框架简介LayUI框架是目前在中国市场上最火爆的国产开源前端框架。即使不是一个前端大佬,使用LayUI,也可以通过简单的配置以及非常少的代码开发一个还算不错的页面。访问LayUI的官网:https://www.layui.com/:LayUI是一个完整的页面元素和组件的集合体,他提供了非常多的功能:LayUI提供了很多基本元素和组件。部分内容简介如下:1.基本元素和组件(1)基本元素比如按钮这个基本元素:...原创 2021-05-18 21:39:34 · 3176 阅读 · 4 评论 -
OA系统七:数据库表设计:RBAC(基于角色的访问控制)介绍与核心表;
0.RBAC简述:RBAC(Role-Based Access Control:基于角色的访问控制):通过RBAC这种全新设计,可以帮助我们在多用户的环境下实现对权限的有效控制;说明:(1)不同的角色拥有不同的权限。(2)这里的资源的定义比较宽泛、包括:系统的功能可以看成一种资源,公司中不同的文件可以看成一种资源,系统的url网址也可以看成是资源。不同的角色就拥有了对不同资源的访问控制权限。所有的资源都是和角色绑定的。(3)一个用户过来了,如何给这个用户分配一个角色嘞???需要设.原创 2021-05-18 17:08:02 · 8685 阅读 · 6 评论 -
附加:IDEA的Artifacts;(这篇博客,以后有了更深的理解时,随时补充……)
平常在IDEA中需要在这儿设置Artifact部分:目前所有遇到过的涉及Artifact部分:(1)第一个涉及Artifact的部分:IntelliJ IDEA开发工具入门六:IDEA运行、调试、断点,单步运行等;程序打包(这儿以打成jar包为例);中的程序打jar包前,在Artifact进行设置。其中设置的,输出的jar的一些设置,比如jar的名字、jar的输出目录、jar的入口类、加载classpath类路径等等;(2)第二个涉及Artifact的部分:IntelliJ I.原创 2021-05-17 02:34:03 · 1602 阅读 · 0 评论 -
OA系统六:前期准备四:整合FreeMarker;引入Servlet3.1依赖;顺带设置下logback.xml日志;
因为,在当前工程中,web应用选择Servlet3.1和FreeMarker。原创 2021-05-17 01:24:52 · 726 阅读 · 1 评论 -
OA系统五:前期准备三:Mybatis整合Druid连接池;
Mybatis整合Druid连接池,及相关说明。目录(1)第一步:通过maven引入Druid的依赖(2)第二步:创建Druid和Mybatis兼容所需的数据源工厂类:DruidDataSourceFactory类(3)第三步:在mybatis-config.xml中设置一下(4)第四步:测试(1)第一步:通过maven引入Druid的依赖(2)第二步:创建Druid和Mybatis兼容所需的数据源工厂类:DruidDataSourceFactory类Drui..原创 2021-05-16 06:53:14 · 719 阅读 · 0 评论 -
OA系统四:前期准备二:在工程中集成Mybatis;开发MybatisUtils工具类;
在OA系统三:前期准备一:查看并准备好一个数据库逻辑空间;创建一Maven Web工程;中已经准备好了一个MavenWeb工程。本篇博客的主要内容是在当前工程中集成Mybatis,并且开发一个Mybatis工具类MybatisUtils类。目录一.首先,在pom.xml中增加Mybatis以及相关的依赖:二.依赖写好之后,创建mybatis-config.xml文件,配置Mybatis三.创建MyBatisUtils工具类(1)这是以前编写的MyBatisUtils工具类:不太完美,有.原创 2021-05-16 00:49:48 · 871 阅读 · 0 评论 -
OA系统三:前期准备一:查看并准备好一个数据库逻辑空间;创建一Maven Web工程;
本项目基于JDK1.8;OA系统涉及的组件和框架有:目录一:查看数据库,准备一个空的逻辑空间二:创建一个MavenWeb工程(1)创建一Maven工程(2)将当前工程设置为Web工程设置第一部分:web.xml保存目录:设置第二部分:web资源保存在哪儿:设置第三部分:web模块如何执行artifact:(3)IDEA配置Tomcat(4)最后的一点说明:【创建基于Maven的web工程】和【创建不使用Maven的web工程】在操作上有些许区别一:查看数据..原创 2021-05-15 20:33:23 · 820 阅读 · 1 评论 -
OA系统二:项目介绍:需求介绍;功能展示;
0.项目整体内容介绍(1)整体的业务流程,Mybatis的底层开发环境准备;(2)RBAC(基于角色的访问控制):通过RBAC这种全新设计,可以帮助我们在多用户的环境下实现对权限的有效控制;(3)开发一个业务模块,实现多级请假审批的流程;1.需求说明(1)何为OA系统比如,我们的请假系统,公司内部的消息通告系统,公文转发都是可以利用OA系统完成的。在OA系统上传递的都是与业务相关的数据;(2)需求介绍一个实际的业务:2.功...原创 2021-05-15 17:42:34 · 6302 阅读 · 0 评论 -
OA系统一:概况介绍;
Servlet,JSP,Mybatis这些技术的一个综合应用案例。OA系统是一个完整的企业级应用,包括底层如何数据建表,如何去接受来自于网页的数据,如何返回对应的结果等等。OA系统中的内容是比较重要的:(1)模拟的是正式的项目,有着完整的需求说明,环境介绍,业务规则,数据库设计;通过这些流程,可以知道在项目开发前需要做哪些准备。(2)RBAC权限控制:一个系统需要有注册、登录,以及相应可以使用的功能权限。在软件设计领域著名的RBAC(基于角色控制访问的的设计),可以帮助我们实现后台系统的权原创 2021-05-15 06:51:07 · 914 阅读 · 0 评论