栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM中的DAO层的编码小技巧

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM中的DAO层的编码小技巧

我们在写SSM时,需要写DAO层与数据库进行交互,然而,我们会发现,与数据库的交互,肯定会有异常出现,此时需要我们进行捕获。
所以通常而言,我们的DAO层的代码都会如下:

比如上面的例子,查询商城的订单详情,我们需要向数据库进行查询。
我们分析下上面的代码,可以发现,该方法的执行结果会有三种情况出现:

  1. 如果成功查询,那么会返回我们想要的数据,执行完try语句后就直接结束该方法。
  2. 如果成功查询,并且查询的结果刚好为空,即数据库并没有符合要求的行数据,那么该方法也会在执行完try语句后返回null,然后结束该方法。
  3. 如果在执行try语句块的过程中,出现了异常,由于我们进行了try-catch,所以会跳转到catch处理掉异常,然后往下执行,所以接下来,会执行的是return null;也就是说,会返回null并结束该方法。

所以分析完这可能出现的三种情况,你们有没有发现问题的所在?
问题:如果我们采用这种编码方式,会导致外界调用该方法的调用者对返回的结果的意义不明确,即返回null时,外界的调用者不确定是因为程序执行出现异常才返回null,还是因为数据库压根就没有所要查询的数据,所以才返回null。因此,返回null的情况产生了歧义,意义不明确,不符合我们的程序运行规范(每个结果要有明确的意义)。


那么,要如何避免呢?很简单,耍个小心机就可以了!

在捕获完异常并处理后,添加划线的代码即可。
因为throw的是运行时异常,所以外界的调用者可以不对其进行处理。
通过我们这么一改造,那么该方法的运行结果就会出现如下三种情况:

  1. 如果成功查询,那么会返回我们想要的数据,执行完try语句后就直接结束该方法。
  2. 如果成功查询,并且查询的结果刚好为空,即数据库并没有符合要求的行数据,那么该方法也会在执行完try语句后返回null,然后结束该方法。
  3. 如果在执行try语句块的过程中,出现了异常,由于我们进行了try-catch,所以会跳转到catch处理掉异常,并且处理完异常后,又重新抛出一个运行时异常,最后结束该方法。

如此一来,我们就可以完美避开方法返回null时的意义存在歧义的现象啦!


好了,如果这篇文章对你有帮助的话,不妨点个关注吧~
期待下次我们共同讨论,一起进步~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298477.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号