MybatisPlus调用count函数

        项目整合了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,做层层调用,非常好用。

你可能感兴趣的:(Java,后端开发,java,spring,boot)