2 jonsmiths JonSmiths 于 2016.09.08 18:39 提问

用SSH框架做的项目中如何判断数据操作成功?

通过操作完之后读取值比较来判断?
或者通过try catch来判断,当出现异常之后并且返回一直false?那这个try catch是放在dao层
还是service层呢?
通过spring管理事务的话(放在service层),如果在service层trycatch后不向上抛异常的话,
事务就不会回滚?
在service做try catch到底应不应该。

2个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.09.08 21:07
  一般来说数据库操作都会有操作返回值的,返回值正确当然是成功了,在异常分支里的话必定是失败的。通常异常都是往上层抛出直到控制层再处理的。可以根据自己的需求封装异常。
JonSmiths
JonSmiths 我查了一下hibernate只有save方法有一个serizalize的返回值,delete和save都是void,我想用trycatch来判定是否执行成功,如果有错在catch中返回false,可是如果在dao层不捕获异常在service层捕获异常的话,那就必须要抛一个异常才事务才会回滚,但是抛异常前我已经return了个false那么下面的throw不就不执行了?好懵逼啊
大约一年之前 回复
u013829202
u013829202   Rxr 2016.09.09 16:13

楼上说的对。 控制器一般都是做跳转,业务逻辑都是service层写,异常处理在service处理比较好

JonSmiths
JonSmiths 对这一块我还是不太懂如何处理。如果dao层处理数据出现异常,那么我在service层调用这个dao方法的时候在catch能捕获到这个异常不?而且在service写了trycath如果不抛异常就不能回滚啊。好懵逼啊!
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片