学习主题:OA系统
报销管理-添加报销单-业务层在报销主表和明细表中都有一个字段叫expid,这个字段在数据库中是利用序列获取的,但是在业务层中,我们要控制主表和明细表的expid一致,所以要先获取expid赋值给主表和明细表,那么这个expid的值怎么得到呢?
使用@SelectKey注解获取
报销管理-添加报销单-DAO层代码在我们的逻辑中,要向主表添加数据,要向明细表添加数据,但是假如在向明细表添加数据的过程中,出现异常了,那么程序就中断了,但是主表的数据被添加进去了,这个问题要怎么解决呢?
所有事务中的所有sql都成功执行再commit,出现异常rollback
在我们目前的代码中,当添加明细出现问题的时候,页面还是会跳转到添加成功页面,这个问题怎么解决呢?
使用 throw new RuntimeException(msg)向上抛出异常
现在的代码中,会出现另一个问题:主表数据添加成功,明细表数据添加失败,但是这些操作肯定是要么都成功,要么都失败的,那么这个问题怎么解决呢?
使用mybatis时这些操作都是在业务层进行的,而且使用的是同一个SqlSesion,所以只要验证所有的明细表数据都添加成功再commit即可,否则rollback
报销管理-使用ThreadLocal实现业务层事务1说明ThreadLocal的作用?
保存数据库链接
报销管理-使用ThreadLocal实现业务层事务2如何保证DBUtils工具类中getConnection方法获取到的Connection对象是一个呢?
将Connection存入ThreadLocal
在DBUtils中是否要将Connection关闭呢?那要在什么时候关闭?
所有同一个事务的sql都执行完毕再关闭Connection
报销管理-待审报销单简述待审报销的思路?
当进入toAudit.jsp时,查询NEXTAUDITOR为当前登录人的报销单,并在页面显示
如何查询的是不是下一级审批人是当前登录人的信息
查询NEXTAUDITOR为当前登录人的报销单
我要查询的是不是下一级审批人是当前登录人的信息?根据业务流程图,请用文字详细描述报销流程。
1 首先判断报销是否被通过,不被通过直接打回或拒绝
2 被通过判断的报销判断当前审核人是否为财务,是财务直接支出打款
3前审核人不是财务的要判断金额是否大于2500,大于2500时上级审核后需要提交给总裁审核,总裁审核通过最终交给财务审核
4 金额小于等于2500的报销由上级审核后交财务审核
审核报销单业务涉及到哪些表?
Expense Auditing
报销管理-审核报销单-控制层代码和业务层思路如何在后台sql中进行条件的拼接?报销管理-审核报销单-DAO层和业务层代码实现1在填充业务层代码过程中,需要注意哪些事项?
先写出业务逻辑,再根据逻辑实现代码
报销管理-审核报销单-DAO层和业务层代码实现2完成审核报销单业务层代码。报销管理-理解数据库表和创建实体类简述系统中表之间的关系:
在实体类中表示一对多的关系时在一的表中使用List表示多的表,在多的表中使用一的表的实体类对象表示,
报销管理-审核报销单-代码完善和业务流程图绘制在完成审核报销单功能后,你的感悟是什么?在程序出错后或跟你预先结果不一致的时候,你的应对策略是什么?
如果是程序出错出报错的地方开排查,直到发现报错的地方
如果是预先结果,顺着产生结果的线路排查,直到发现导致结果异常的地方
收支管理-Echarts入门Echarts插件的作用?
根据数据进行图表展示
如何使用Echarts插件?
导入Echarts的js文件
收支管理-使用Echarts柱状图显示收入统计信息-视图层和控制层使用Echarts柱状图显示收入统计信息的逻辑概述?