= 改为 in

来源:互联网 发布:防网络尖兵方法 编辑:程序博客网 时间:2024/06/13 09:48
for (String tableName : tableNames) {//检查是否全为空for (long p_hour = start; p_hour <= end; p_hour++) {String sql="select * from HIVE_READ_INSERT_HISTORY where "+imsiORmsisdnSql(imsi, msisdn, tableName)+" and p_hour='"+p_hour+"' "+ "and table_name='"+tableName+"' and is_ok='empty'";System.out.println("检查状态 sql##" + sql);//一般情况下只有一行List<Map<String, String>> selectData = oracleService.selectData(sql);if(selectData!=null&&selectData.size()>0) {emptyCount++;}}for (long p_hour = start; p_hour <= end; p_hour++) {String sql="select * from HIVE_READ_INSERT_HISTORY where "+imsiORmsisdnSql(imsi, msisdn, tableName)+" and p_hour='"+p_hour+"' "+ "and table_name='"+tableName+"' and is_ok='success'";System.out.println("检查状态 sql##" + sql);List<Map<String, String>> selectData = oracleService.selectData(sql);if(selectData!=null&&selectData.size()>0) {successCount++;}}}



上面的代码可以优化,不要 table_name=。用 table_name in(  for循环拼接表名  )

for循环一次访问数据库一次,关闭一次,资源消耗大。获取结果后用代码实现判断。