mysql-mybatis 存储过程-分页查询

1.创建表

 CREATE TABLE EASYBUY_PRODUCT
(
  `ep_id`          INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '自动编号(标识列),主键',
  `ep_name`        VARCHAR(30) NOT NULL COMMENT  '商品名字',
  `ep_description` VARCHAR(150) COMMENT '商品描述',
  `ep_price`       DECIMAL(10,2)  NOT NULL COMMENT '商品价格',
  `ep_stoc`        INTEGER NOT NULL COMMENT '商品库存',
  `epc_id`         INTEGER NOT NULL COMMENT '所属分类ID',
  `epc_child_id`   INTEGER COMMENT '所属二级分类ID',
  `ep_file_name`   VARCHAR(200) NOT NULL COMMENT '上传的文件名',
)ENGINE=INNODB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8 COMMENT='商品表(easybuy_product):存放商品基本信息';


2.插入语句

INSERT INTO EASYBUY_PRODUCT (`ep_id`, `ep_name`, `ep_description`, `ep_price`, `ep_stoc`, `epc_id`, `epc_child_id`, `ep_file_name`)
VALUES (19, '学生纯棉短袖t恤', '男士夏装青春学生纯棉短袖t恤修身上衣服青少年日系潮半截袖男装 ', 17, 157, 1, NULL, 'yf3.jpg');
INSERT INTO EASYBUY_PRODUCT (`ep_id`, `ep_name`, `ep_description`, `ep_price`, `ep_stoc`, `epc_id`, `epc_child_id`, `ep_file_name`)
VALUES (20, '印花体恤衫', '紧身t恤男韩版圆领个性印花体恤衫薄款修身潮流男士短袖t桖血衣服', 49, 77, 1, NULL, 'yf4.jpg');
INSERT INTO EASYBUY_PRODUCT (`ep_id`, `ep_name`, `ep_description`, `ep_price`, `ep_stoc`, `epc_id`, `epc_child_id`, `ep_file_name`)
VALUES (26, '韩国高腰短款上衣', '韩国高腰短款上衣服女士超短装显瘦露脐T恤夏漏肚脐潮女短袖宽松 ', 20, 77, 2, NULL, 'ny3.jpg');

INSERT INTO EASYBUY_PRODUCT (`ep_id`, `ep_name`, `ep_description`, `ep_price`, `ep_stoc`, `epc_id`, `epc_child_id`, `ep_file_name`)


3.创建存储过程

DELIMITER;
DROP PROCEDURE IF EXISTS
`u_product`;
CREATE  PROCEDURE `u_product`(IN `in_start` INTEGER,IN `in_end` INTEGER,
OUT `out_ep_id` INTEGER,OUT `out_ep_name` VARCHAR(30),OUT `out_ep_description` VARCHAR(150),
OUT `out_ep_price` DECIMAL(10,2),OUT `out_ep_stoc` INTEGER,OUT `out_epc_id` INTEGER,
OUT `out_epc_child_id` INTEGER,OUT `out_ep_file_name`  VARCHAR(200))
BEGIN 
IF in_start < 0 THEN
SET
in_start = 1;
END IF;
IF in_end < 1 THEN
SET
in_end = 10 ;
END IF;
SET
@pro=CONCAT('SELECT * FROM EASYBUY_PRODUCT  ORDER BY ep_id LIMIT ',in_start ,',',in_end);
PREPARE prods FROM @pro;               -- 得到prepare prods
EXECUTE prods;                -- 执行select 
DEALLOCATE PREPARE prods;
END;


4.xml配置sql语句

<!-- 存储过程 -->   statementType="CALLABLE" 这句必须加上,调用存储过程
  <select id="findProductByPage" parameterType="hashmap" resultMap="ProductResult" statementType="CALLABLE">
  {call u_product(
  #{in_start,jdbcType=VARCHAR,mode=IN},
  #{in_end,jdbcType=VARCHAR,mode=IN},
  #{out_ep_id,jdbcType=INTEGER,mode=OUT},
  #{out_ep_name,jdbcType=VARCHAR,mode=OUT},
  #{out_ep_description,jdbcType=VARCHAR,mode=OUT},
  #{out_ep_price,jdbcType=DECIMAL,mode=OUT},
  #{out_ep_stoc,jdbcType=INTEGER,mode=OUT},
  #{out_epc_id,jdbcType=INTEGER,mode=OUT},
  #{out_epc_child_id,jdbcType=INTEGER,mode=OUT},
  #{out_ep_file_name,jdbcType=VARCHAR,mode=OUT}
  )}
  </select>


猜你喜欢

转载自blog.csdn.net/weixin_38423249/article/details/80643370