使用MyBatis时的异常处理
使用mybatis时在Spring的配置文件中给sqlSessionFactory指定好dataSource,typeAliasesPackage,mapperLocations后,接下来写mappers xml及interface文件就好了,在数据层调用的时候很简单的两句:
1 | SpitterMapper spitterMapper = sqlSessionTemplate.getMapper(SpitterMapper.class); |
但是这并不够,虽然出了什么错,会在终端告诉我们(比如说操作的数据库表并不存在,SQL语法有问题等等),但是在实际Web环境中,我们往往需要更多的控制,不论是否有异常都需要自己明确的处理,而不是直接出错,所以我们把异常逐渐递交给上层。
所以我们在这里需要自己加入异常处理,并且在异常发生的时候有对应的动作(打印日志,或者回复客户端对应的消息)。像下面这样,在Service层声明我们自己的异常,主动捕获异常,然后把异常(内部包含底层具体的异常)传递下去,而且在日志输出中可以看到实际发生了什么。下面的System.out.println在实际中使用logger。
1 | "spitterService") (value = |