做demo临时遇到 添加/修改购物车 ,某人购物车中没有这个商品记录时insert一条,有记录则update个数。
由于比较懒,select 后再判断 insert 还是update 比较不符合我这样活泼的性格。
于是Mybatis中出了这一条,
临时用到sql 网上找了模板后改来用,
结构别人写的,临时帮忙,表不大所以没考虑性能好坏,这点遗憾。
表结构:
代码:
<!-- 添加/修改购物车,没有则insert 有则update map属性 product_num,user_name,trolley_num -->
DROP PROCEDURE IF EXISTS temp;
DELIMITER //
CREATE PROCEDURE temp()
BEGIN
DECLARE num int DEFAULT 0;
DECLARE vid int DEFAULT 0;
SELECT count(*),T.product_num INTO num,vid FROM shop_trolley T WHERE trolley_id=223 ;
IF num=0 THEN
INSERT INTO shop_trolley VALUES (223,400,222,12);
ELSE
UPDATE shop_trolley SET trolley_num=trolley_num+12 WHERE product_num=vid;
END IF;
END
//
DELIMITER ;
call temp();
别说扔到MaBatis xml文件里也能运行,至于sql内判断快还是写成service快,没测试过,但感觉内部处理应该会比外部处理快。未测,不敢下定论。