700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 泛微oa主表赋值明细表_Java学习第89天--OA系统

泛微oa主表赋值明细表_Java学习第89天--OA系统

时间:2021-03-28 20:24:50

相关推荐

泛微oa主表赋值明细表_Java学习第89天--OA系统

学习主题:OA系统

学习目标:

1 掌握web开发项目实战,熟练使用web开发基础技术

对应作业

1. 报销管理-添加报销单-业务层

(1) 在报销主表和明细表中都有一个字段叫expid,这个字段在数据库中是利用序列获取的,但是在业务层中,我们要控制主表和明细表的expid一致,所以要先获取expid赋值给主表和明细表,那么这个expid的值怎么得到呢?

1. 首先在数据库添加序列(第一个:数据单,第二个:数据单项)

2. 在MyEclipse中先获取数据库中的下一个序列的值(seq_exp.nextval)

3. 然后将值添加在数据单对应的数据单Id中.

2. 报销管理-添加报销单-DAO层代码

(1) 在我们的逻辑中,要向主表添加数据,要向明细表添加数据,但是假如在向明细表添加数据的过程中,出现异常了,那么程序就中断了,但是主表的数据被添加进去了,这个问题要怎么解决呢?

原因:一个DML操作一个事务,事务在Dao层,这就被分为了多个事务,而不是一个,

解决:将多个操作视为一个事务,此时事务要从Dao层提升到业务层.

(2) 在我们目前的代码中,当添加明细出现问题的时候,页面还是会跳转到添加成功页面,这个问题怎么解决呢?

原因: 这是因为DBUtil中出现异常以后没有抛出.

解决: 在DBUtil.java中捕捉到的异常抛出即可.

(3) 现在的代码中,会出现另一个问题:主表数据添加成功,明细表数据添加失败,但是这些操作肯定是要么都成功,要么都失败的,那么这个问题怎么解决呢?

和问题一是一个问题.

3. 报销管理-使用ThreadLocal实现业务层事务1

(1) 说明ThreadLocal的作用?

在ThreadLocal中存入connection对象.这样就可以在业务层对业务进行回滚.

ThreadLocal中的一个对象被一个线程共享,一次用户请求,共用一个Connection对象.

4. 报销管理-使用ThreadLocal实现业务层事务2

(1) 如何保证DBUtils工具类中getConnection方法获取到的Connection对象是一个呢?

把Connection对象存放在ThreadLocal中就可以了.

(2) 在DBUtils中是否要将Connection关闭呢?那要在什么时候关闭?

在业务层中关闭Connection对象,不要再Dao层关闭.

5. 报销管理-待审报销单

(1) 简述待审报销的思路?

1. 获取登录人的ID.

2. 从数据库获取查询上级Id为登录人的报销单,然后显示在网页中

(2) 如何查询的下一级审批人是不是当前登录人的信息?

比较empId和mgrId看查是否相等.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。