根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写 SQL 的时候,还要 SELECT count(*) 呢?
无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的 count
优化前:
sql执行
select COUNT(1) from csp_cust t WHERE t.contact_sheet_no =? ;
java代码
geshu = jxShowInfoDao.getCustno(cust); System.out.println("sheetNo1:"+ geshu); if(geshu > 0) { System.out.println("有重复:"+ geshu); } else { jxShowInfoDao.setCust(cust); }
优化后:
sql执行SQL 不再使用 count,而是改用 LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了
select 1 from csp_cust t WHERE t.contact_sheet_no =? limit 1;
java代码:业务代码中直接判断是否非空即可
Integer cdmaTroubleInf = jxShowInfoService.getCDMATroubleInf(srvCode); Integer broadTroubleInf = jxShowInfoService.getBroadTroubleInf(srvCode); if(cdmaTroubleInf!=null || broadTroubleInf!=null){ map.put("flag", "0"); }else{ map.put("flag", "1"); }