存储过程
CREATE DEFINER=`root`@`%` PROCEDURE `pro_index_data`(IN `areaCode` varchar(50),OUT `deviceSum` int,OUT `abnormal` int,OUT `areaSum` int)
BEGIN
if areaCode is not NULL then
select count(id) from dma_device_info where device_type=-1 and FIND_IN_SET(area_pid,areaCode)>0 into deviceSum;
select count(id) from dma_device_info where device_type=-1 and device_status=2 and FIND_IN_SET(area_pid,areaCode)>0 into abnormal;
select count(DISTINCT(device_area)) from dma_device_info where device_type=-1 and FIND_IN_SET(area_pid,areaCode)>0 into areaSum;
ELSE
select count(id) from dma_device_info where device_type=-1 into deviceSum;
select count(id) from dma_device_info where device_type=-1 and device_status=2 into abnormal;
select count(DISTINCT(device_area)) from dma_device_info where device_type=-1 into areaSum;
END IF;
END
Mybatis-Plus调用
<select id="queryDeviceCount" parameterType="java.util.Map" statementType="CALLABLE">
{
call
pro_index_data(
#{areaCode,mode=IN,jdbcType=VARCHAR},
#{deviceSum,mode=OUT,jdbcType=INTEGER},
#{abnormal,mode=OUT,jdbcType=INTEGER},
#{areaSum,mode=OUT,jdbcType=INTEGER}
)
}
</select>
mapper层
service层调用
注:参数名保持一致。调用该存储过程后,输出参数值会返回到传参的Map中,直接get对应的键即可。
关注微信公众号【川蜀程序猿】,领取海量简历模板!!