疫情大数据平台,后台首要的任务是从各种渠道获得数据及对获取后的数据进行处理,本篇主要是记录各类历史数据从数据库中取出,并进行详细处理的过程
主要使用MybatisPlus进行复杂查找
MybatisPlus进行简单查找时较为方便,但进行复杂查找时,需要注意的地方有很多,也比较麻烦
例如
sql语句:sql = "SELECT max(confirm),cast(sum(confirm_add) as signed),date_format(date,'%Y-%m') " \
"FROM epidemicplatform.province_history " \
"where province={} " \
"GROUP BY DATE_FORMAT(date, '%Y-%m');"
查询语句中不能出现下划线,及较低版本的sql中,出现在select中的字段也必须出现在group by中,否则会报错
QueryWrapper<Province_history> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("province",region);
queryWrapper1.groupBy("DATE_FORMAT(date, '%Y-%m')").select("max(confirm) as maxconfirm","DATE_FORMAT(date, '%Y-%m') as d","sum(confirm_add) as sumconfirmadd");
部分提取代码
QueryWrapper<Province_history1> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("province", region);
queryWrapper1.ge("date","2022-04-01");
queryWrapper1.groupBy("DATE_FORMAT(date, '%Y-%m-%d')").select("DATE_FORMAT(date, '%Y-%m-%d') as date1","heal_add as sumhealadd","dead_add as sumdeadadd","confirm_add as sumconfirmadd");
List<Province_history1> history = province_historyMapper1.selectList