一、经常看到的现象
判断符合条件的某种数据是否存在,如果存在,就进行相关业务。这种业务场景挺常见的。
为了实现这种需求,我们经常看到这种代码,假设ORM框架用的是MyBatis。伪代码大致如下:
mapper.xml:
select count(*) as dataCnt from table where condition;
Java:
int num = xxDao.countXxByXxx(params);
if ( num > 0 ) {
//当存在,就做这里的事情;
} else {
//不存在,就做这里的事情;
}
二、推荐做法
mapper.xml:
select 1 as dataCnt from table where condition limit 1;
Java:
Integer exist = xxDao.existsXxByXxx(params);
if ( exists != NULL ) {
//当存在,就做这里的事情;
} else {
//不存在,就做这里的事情;
}
三、说一说我的想法
其实前文所述第一种也没太大毛病,毕竟也见过不少程序员老司机经常这么写。不过我个人觉得追求优雅的代码还是比较好的。
本文有参考别人的公众号。
推荐一本书,《收获,不止Oracle》,福富公司的梁敬彬老师写的。这本书用一些通俗易懂的生活例子来讲Oracle技术,我有印象,在书里提到过和本文类似的观点,“当你要判断一个袋子是否有米,通常只需要检查一下小角落即可”(例子可能并不是特别特别严谨,但是我想说的是这种用生活中的例子来阐述一下技术知识点,是不错的一种学习方式)。

被折叠的 条评论
为什么被折叠?



