项目整合了mybatisPlus时,可以使用count函数做一些简单的统计
前言
今天项目中遇到一个记录统计,由于项目整合过mybatisPlus,就不通过mybatis去写sql做查询,可通过QueryWrapper方法直接进行查询
一、调用方法用mybatisPlus使用count聚合函数时,直接调用.select方法即可,例如:
csArchiveQueryWrapper.select("COUNT(*) as importNo");
二、详细server层代码
这里我们通过 QueryWrapper.select() 进行查询,在传入getMap方法,定义map接收,最后取出我们需要的 importNo 即可,由于在实体类中定义的类型为 Integer,所以做了类型转换
代码如下(示例):
public ArchiveRecords query(ArchiveRecordsVo vo) {
…………………………
ArchiveRecords records = baseMapper.selectOne(queryWrapper);
//查询archive表中档案总条数
QueryWrapper ArchiveQueryWrapper= new QueryWrapper<>();
ArchiveQueryWrapper.select("COUNT(*) as importNo");
Map map = archiveService.getMap(ArchiveQueryWrapper);
System.out.println("==============>map:" + map);
Integer No = Integer.valueOf(String.valueOf(map.get("importNo")));
System.out.println("--------------->取出map中importNo:" + No);
System.out.println("--------------->取出map中importNo:" + No);
System.out.println("--------------->取出map中importNo:" + No);
records1.setImportNo(No);
System.out.println("--------------->set后新总条数:" + records.getImportNo());
System.out.println("--------------->set后新总条数:" + records.getImportNo());
System.out.println("--------------->set后新总条数:" + records.getImportNo());
return records;
}
控制台输出:
代码如下(示例):
==============>map:{importNo=5}
--------------->取出map中importNo:5
--------------->取出map中importNo:5
--------------->取出map中importNo:5
--------------->set后新总条数:5
--------------->set后新总条数:5
--------------->set后新总条数:5
注意:
在select()中自定义的sql语句,不需要加 from table_name,它会自动拼接,若自己加了,则会出现报错,拼接的sql语句将会变为:
SELECT COUNT(*) as importNo FROM archive FROM archive
sql会多拼接一个 from table_name 这里需要注意一下,需要where条件可通过 QueryWrapper.eq() 等方法实现,可根据实际需求自行选择
总结
通过mybatisPlus的方法,可以快速的实现某些方法,不用写xml,做层层调用,非常好用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)