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 `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>