前端传参数进行Mybatis调用mysql存储过程执行返回值详解

查询数据库中的存储过程:

方法一:

select `name` from mysql.proc where db = 'your_db_name' and `type`; = 'PROCEDURE'

方法二:

 show procedure status;

你要先在数据库中建一个表,然后创建存储过程

前端传参数进行Mybatis调用mysql存储过程执行返回值详解_第1张图片

我建的表a_tmp,存储过程名称bill_a_forbusiness

执行语句:  CALL bill_a_forbusiness(44,44,52,47,44,46,52,52,349171)

存储过程调用方式:

CALL Pro_Get_CO2('2018','','','');
CALL Pro_Get_EnergyData('2017');
CALL Pro_Get_Carbon_OrgType('2014');
CALL 存储过程名(参数);

查看存储过程或函数的创建代码:

show create procedure proc_name;
show create function func_name;

前端传参数进行Mybatis调用mysql存储过程执行返回值详解_第2张图片

因为这个没有返回值所以需要先传参调用执行,再查询

前端代码:

 端js代码:

 接口代码:

前端传参数进行Mybatis调用mysql存储过程执行返回值详解_第3张图片

import request from '@/utils/request'

// 查询列表
export function listProc(query) {
    return request({
      url: '/stock/proc/list',
      method: 'get',
      params: query
    })
  }

// 查询
export function returnProc(query) {
  return request({
    url: '/stock/proc/query',
    method: 'get',
    parameters: query
  })
}

Java代码:

controller:

@RestController
@RequestMapping("/stock/proc")
public class StockProcController extends BaseController
{
    @Autowired
    private IStockProcService stockProcService;

    /**
     * 查询列表
     */
    //@PreAuthorize("@ss.hasPermi('stock:proc:list')")
    @GetMapping("/list")
    public TableDataInfo list(StockProc stockProc)
    {
startPage();
            List paramlist = stockProcService.selectStockProcParamList(stockProc);
            //return getDataTable(paramlist);
        return null;

    }
/**
     * 获取外出申请详细信息
     */
   @PreAuthorize("@ss.hasPermi('stock:Proc:query')")
    @GetMapping("/query")
    public TableDataInfo getInfo(StockProc stockProc)
    {
        startPage();
        List list = stockProcService.selectStockProcList(stockProc);

        return getDataTable(list);
    }
}

实体层:

dao/dto

package com.ruoyi.stock.domain;
 
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
 * 存储过程页面
 *
 */
public class StockProc extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @Excel(name = "序号")
//    @NotBlank(message = "该字段不能为空")
    private int id;

    /** 第一编号 */
    @Excel(name = "第一参数趟次")
    private int a;

    /** 第一编号 */
    @Excel(name = "第二参数趟次")
    private int b ;
    /** 第一编号 */
    @Excel(name = "第三参数趟次")
    private int c;
    /** 第一编号 */
    @Excel(name = "第四参数趟次")
    private int d;
    /** 第一编号 */
    @Excel(name = "第五参数趟次")
    private int e;
    /** 第一编号 */
    @Excel(name = "第六参数趟次")
    private int f;
    /** 第一编号 */
    @Excel(name = "第七参数趟次")
    private int g;
    /** 第一编号 */
    @Excel(name = "第八参数趟次")
    private int h;
    /** 第一编号 */
    @Excel(name = "趟次总金额")
    private int abc;
    /** 第一编号 */
    @Excel(name = "趟")
    private int t;
    /** 第一编号 */
    @Excel(name = "趟次")
    private int tc;
    /** 第一编号 */
    @Excel(name = "小计")
    private int min1;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public int getB() {
        return b;
    }
    public void setB(int b) {
        this.b = b;
    }

    public int getC() {
        return c;
    }
 
    public void setC(int c) {
        this.c = c;
    }
 
    public int getD() {
        return d;
    }
 
    public void setD(int d) {
        this.d = d;
    }
 
    public int getE() {
        return e;
    }
    public void setE(int e) {
        this.e = e;
    }
    public int getF() {
        return f;
    }
    public void setF(int f) {
        this.f = f;
    }
    public int getG() {
        return g;
    }
    public void setG(int g) {
        this.g = g;
    }
    public int getH() {
        return h;
    }
    public void setH(int h) {
        this.h = h;
    }
    public int getAbc() {
        return abc;
    }
    public void setAbc(int abc) {
        this.abc = abc;
    }
    public int getT() {
        return t;
    }
    public void setT(int t) {
        this.t = t;
    }
    public int getTc() {
        return tc;
    }
    public void setTc(int tc) {
        this.tc = tc;
    }
    public int getMin1() {
        return min1;
    }
    public void setMin1(int min1) {
        this.min1 = min1;
    }
    @Override
    public String toString() {
        return "StockProc{" +
                "id=" + id +
                ", a=" + a +
                ", b=" + b +
                ", c=" + c +
                ", d=" + d +
                ", e=" + e +
                ", f=" + f +
                ", g=" + g +
                ", h=" + h +
                ", abc=" + abc +
                ", t=" + t +
                ", tc=" + tc +
                ", min1=" + min1 +
                '}';
    }
}

server层:

public interface IStockProcService
{
    /**
     * 查询列表
     * @return 记录集合
     */
    public List selectStockProcList(StockProc stockProc);
    public List selectStockProcParamList(StockProc stockProc);
}

Impl代码:

@Service
public class StockProcImpl implements IStockProcService {
    @Autowired
    private StockProcMapper stockProcMapper;
    /**
     *
     * @param 列表记录
     * @return
     */
    @Override
    public List selectStockProcList(StockProc stockProc) {
        //return stockProcMapper.selectStockProcList(stockProc);
        return stockProcMapper.selectStockProcList(stockProc);
    }
    @Override
    public List selectStockProcParamList(StockProc stockProc) {
        return stockProcMapper.selectStockProcParamList(stockProc);
        //return null;
    }
}

mapper代码:

public interface StockProcMapper
{
    /**
     * 查询列表
     * 
     * @param stockProc 记录
     * @return 集合
     */
    public List selectStockProcList(StockProc stockProc);

    public List selectStockProcParamList(StockProc stockProc);
}

mybatis的xml文件:




    
        
        
        
        
        
        
        
        
        
        
        
        
       
    
    
        SELECT
           a,b,c,d,e,f,g,h,abc,t,tc,min1
        FROM
            a_tmp
    

    
    
    

最后便可以通过页面输入框的参数进行调用存储过程执行,然后点击查询返回结果列表。

到此这篇关于前端传参数进行Mybatis调用mysql存储过程执行返回值详解的文章就介绍到这了,更多相关Mybatis调用mysql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(前端传参数进行Mybatis调用mysql存储过程执行返回值详解)