Mybatis calls the mysql stored procedure, mybatismysql
Create a stored procedure:
DELIMITER $$USE `test`$$DROP PROCEDURE IF EXISTS `user_user_selectUserByProAndCity_sp`$$CREATE DEFINER=`demao`@`%` PROCEDURE `user_user_selectUserByProAndCity_sp`(IN provinceId INT,IN cityId INT,IN pageIndex INT,IN pageSize INT)BEGIN DECLARE proId INT DEFAULT 0; DECLARE ciId INT DEFAULT 0; SELECT *,(SELECT COUNT(*) FROM user_user_t WHEREprovince_id LIKE CONCAT('%',provinceId,'%' ) AND city_id LIKE CONCAT('%',cityId,'%' ) ) AS userCountFROM user_user_tWHERE province_id LIKE CONCAT('%',provinceId,'%' ) AND city_id LIKE CONCAT('%',cityId,'%' ) LIMIT pageIndex,pageSize; END$$
Call in Mapper:
<select id="selectUserByProvinceAndCity" resultMap="BaseResultMap"statementType="CALLABLE">{CALL user_user_selectUserByProAndCity_sp(#{provinceId,mode=IN,jdbcType=INTEGER},#{cityId,mode=IN,jdbcType=INTEGER},#{pageIndex,mode=IN,jdbcType=INTEGER},#{pageSize,mode=IN,jdbcType=INTEGER})}</select>
IN, input parameter, out, outgoing parameter.