文化企业网站模板,国内网站欣赏,腾讯风铃怎么做网站,西安建设网站制作注意#xff1a;调用使用mybatis-plus3形式调用#xff0c;可能会有些区别
1. 创建存储过程
-- -- 生成员工工号的存储过程
DELIMITER $$
CREATE PROCEDURE generate_employee_number(OUT employeeNumber VARCHAR(20)) -- 解释 out 一个返回值
BEGINDECLARE prefix VARCHAR…注意调用使用mybatis-plus3形式调用可能会有些区别
1. 创建存储过程
-- -- 生成员工工号的存储过程
DELIMITER $$
CREATE PROCEDURE generate_employee_number(OUT employeeNumber VARCHAR(20)) -- 解释 out 一个返回值
BEGINDECLARE prefix VARCHAR(3) DEFAULT 000; -- 解释 准备一个固定前缀DECLARE next_id INT; -- 解释 后缀值SELECT AUTO_INCREMENT -- 解释 这里的sql就是 拿到staff表中下一个自增的值 赋值 给 next_id [前提: staff主键是自增情况]INTO next_idFROM information_schema.tablesWHERE 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(); -- 判断当前正在操作的数据库2.xml调用存储过程
!--调用存储过程--
select idgenerateEmployeeNumber statementTypeCALLABLE{call generate_employee_number(#{employeeNumber, modeOUT, jdbcTypeVARCHAR, javaTypejava.lang.String})}
/select3. mapper类
void generateEmployeeNumber(MapString, Object result);4. controller 或 测试
MapString, Object result new HashMap();
result.put(employeeNumber, null);staffMapper.generateEmployeeNumber(result); // 调用存储过程生成员工编号System.out.println(result result.get(employeeNumber));... ...