日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達者為師

網(wǎng)站首頁 編程語言 正文

存儲過程整合springboot

作者:為啥昵稱重復(fù)吶 更新時間: 2024-03-28 編程語言

注意:調(diào)用使用mybatis-plus3形式調(diào)用,可能會有些區(qū)別

1. 創(chuàng)建存儲過程

-- -- 生成員工工號的存儲過程
DELIMITER $$
CREATE PROCEDURE generate_employee_number(OUT employeeNumber VARCHAR(20)) -- 解釋 out 一個返回值
BEGIN
  DECLARE prefix VARCHAR(3) DEFAULT '000'; -- 解釋 準(zhǔn)備一個固定前綴
  DECLARE next_id INT; -- 解釋 后綴值

  SELECT AUTO_INCREMENT -- 解釋 這里的sql就是 拿到staff表中下一個自增的值 賦值 給 next_id [前提: staff主鍵是自增情況]
  INTO next_id
  FROM information_schema.tables
  WHERE table_schema = DATABASE()
    AND table_name = 'staff'; 

  SET employeeNumber = CONCAT(prefix, next_id); -- 解釋 賦值給 employeeNumber
END$$
DELIMITER ;

-- 刪除存儲過程
DROP PROCEDURE generate_employee_number;


CALL generate_employee_number(@employeeNumber); -- 測試
SELECT @employeeNumber;

SHOW CREATE PROCEDURE generate_employee_number; -- 判斷是否存在

SELECT DATABASE(); -- 判斷當(dāng)前正在操作的數(shù)據(jù)庫

2.xml調(diào)用存儲過程

<!--調(diào)用存儲過程-->
<select id="generateEmployeeNumber" statementType="CALLABLE">
  {call generate_employee_number(
  	#{employeeNumber, mode=OUT, jdbcType=VARCHAR, javaType=java.lang.String}
  )}
</select>

3. mapper類

void generateEmployeeNumber(Map<String, Object> result);

4. controller 或 測試

Map<String, Object> result = new HashMap<>();
result.put("employeeNumber", null);

staffMapper.generateEmployeeNumber(result); // 調(diào)用存儲過程生成員工編號

System.out.println("result = " + result.get("employeeNumber"));

... ...

原文鏈接:https://blog.csdn.net/m0_74021233/article/details/137060142

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新