1、定義通用處理
public interface ClickHouseBaseService extends IService<DataRow> {/*** 根據sql查詢數據庫,返回集合對象** @param sql 執行sql* @return {@link DataSet} 數據集*/DataSet querys(String sql);/*** 根據sql查詢數據庫,返回單個對象** @param sql 執行sql* @return {@link DataRow}*/DataRow query(String sql);
}
1.2實現類
@Service
@AllArgsConstructor
@Slf4j
public class ClickHouseBaseServiceImpl extends ServiceImpl<ClickHouseBaseMapper, DataRow> implements ClickHouseBaseService {public DataSet querys(String sql) {log.info("clickhouse查詢開始");List<DataRow> datas = baseMapper.querys(sql);log.info("clickhouse查詢結束,size:{}", datas.size());if (CollUtil.isNotEmpty(datas)) {return DataSet.build(datas);}return new DataSet();}public DataRow query(String sql) {log.info("clickhouse查詢開始");DataRow query = baseMapper.query(sql);log.info("clickhouse查詢結");if (Objects.nonNull(query)) {return query;} else {return new DataRow();}}
}
2、查詢
//根據sql查詢數據
DataSet dataRows = new DataSet();
String sql="select * from table;"dataRows = clickHouseBaseService.querys(sql);if (dataRows.size() > 0) {for (DataRow dataRow : dataRows) {}}