mysql创建存储过程及调用
创建存储过程简单示例:
DELIMITER //
CREATE PROCEDURE ccgc()
BEGIN
SELECT * FROM TEXT;
SELECT * FROM s_user;
END
//DELIMITER ;
//调用
CALL ccgc()
创建带参数的存储过程:
DELIMITER //
CREATE PROCEDURE ccgc2(IN c_name VARCHAR(32))
BEGIN
SELECT * FROM TEXT WHERE NAME = c_name;
SELECT * FROM s_user;
END
//DELIMITER ;
//调用
CALL ccgc2(参数)
创建输出参数存储过程
DELIMITER //
CREATE PROCEDURE ccgc3(OUT c_name VARCHAR(32))
BEGIN
SET c_name = '666';
SELECT c_name;
END
//DELIMITER ;
//调用
CALL ccgc3(@c_name)
输入输出和变量
DELIMITER //
CREATE PROCEDURE ccgc7(INOUT c_name VARCHAR(32))
BEGIN
DECLARE hh VARCHAR(32) DEFAULT '1111111111';
SELECT * FROM TEXT WHERE NAME = hh;
END
//DELIMITER ;
CALL ccgc7(@c_name)
总结:
1) 如果仅仅想把数据传给MySQL存储过程,那就用in类型参数;
2) 如果仅仅从MySQL存储过程返回值,那就用out类型参数;
3) 如果需要把数据传给MySQL存储过程经过计算再传回给我们,那就用inout类型参数。
查看存储过程;SHOW CREATE PROCEDURE proc_name;
查看函数:SHOW CREATE FUNCTION func_name;
删除存储过程:DROP PROCEDURE proc_name;
删除函数:DROP FUNCTION func_nmae;
jpa者mybatis sql调用直接执行CALL ccgc()即可,例:
@Query(value = "call ccgc()",nativeQuery = true)
public List<Map<String,Object>> findZdy(Map<String,Object> map);