mybatisplus的自定義sql使用方法及VO的使用


1、根據sql的select查詢語句字段來在VO包中創建對應的VO類

例如sql語句:

SELECT SUBSTRING_INDEX(CONCAT(SUBSTRING_INDEX(city,'',1),''),'',-1)as 'city',bod51 as 'inBod5',bod52 as 'outBod5' from (SELECT a.region as 'city',bod51,bod52 from sewage_plant a JOIN (select factory_name ,SUM(bod51)as 'bod51',SUM(bod52)as 'bod52' from report_form WHERE MONTH(report_time)=MONTH(CURDATE()) GROUP BY factory_name)b ON a.factory_name=b.factory_name)c

我們可以看到select出來的字段被重命名as為新字段名。則新建類相應的屬性名應與此字段名相同

千萬不要忘記@Data注解!!!!!!!!!!!!!!!!!!

package com.project.sewageplant3.entity.vo;

import lombok.Data;

import java.math.BigDecimal;
@Data
public class StandardSituationVO {
    private String city;
    private BigDecimal inBod5;
    private BigDecimal outBod5;
}

2、在對應的mapper層中添加注解和方法

@Repository
public interface ReportFormMapper extends BaseMapper<ReportForm> {
          
          @Select("SELECT SUBSTRING_INDEX(CONCAT(SUBSTRING_INDEX(city,'市',1),'市'),'省',-1)as 'city',bod51 as 'inBod5',bod52 as 'outBod5' from (SELECT a.region as 'city',bod51,bod52 from sewage_plant a JOIN (select factory_name ,SUM(bod51)as 'bod51',SUM(bod52)as 'bod52' from report_form WHERE MONTH(report_time)=MONTH(CURDATE()) GROUP BY factory_name)b ON a.factory_name=b.factory_name)c")
          List<StandardSituationVO> standardSituationList();
}

3、在service層的抽象類和實現類中分別添加方法

①抽象類

public List<StandardSituationVO> standardSituationList();

②抽象類的實現類(IDEA可以ctrl+o快捷添加方法)

@Override
    public List<StandardSituationVO> standardSituationList() {
        return reportFormMapper.standardSituationList(); //返回接口的方法
    }

4、最后在controller層中執行service層方法

@GetMapping("/standardSituationList")
    public List<StandardSituationVO> StandardSituationList(){
        return reportFormService.standardSituationList();  //返回service層接口方法
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM