Mysql中的存储过程

一,什么是数据库存储过程?

存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

存储过程(procedure)类似于C语言中的函数。
用来执行管理任务或应用复杂的业务规则。

存储过程可以带参数,也可以返回结果。
存储过程可以包含数据操纵语句、变量、逻辑 控制语句等。
存储过程是一组预编译的SQL语句,它可以包含数据操纵语句、变量、逻辑控制语句等
存储过程允许带参数,参数分为:
输入参数
输出参数
其中,输入参数可以有默认值。

二,为什么要使用存储过程??(存储过程的好处/优点)

(1)实现了模块化编程。
(2)调用一次以后,相关信息就保存在内存中,下次调用时可以直接执行。
(3)存储过程可以接受输入参数并可以返回输出值。
(4)存储过程具有对数据库立即访问的功能。
(5)使用存储过程可以加快程序的运行速度。
(6)使用存储过程可以减少网络流量。
(7)使用存储过程可以提高数据库的安全性。

使用:输入一个学生id,返回学生的总成绩

存储过程代码:

create procedure getTotal(
in id int,
out total decimal(8,2)
)
begin
select SUM(s.count) from student s 
where s.id = id 
into total;
end;

调用存储过程代码:

call getTotal(2, @total);
select @total;

在Mybatis中使用存储过程:

<!--  public void getEmpsByPage(); 
          statementType="CALLABLE":调用存储过程,默认是PREPARED
    -->
    <select id="getEmpsByPage" statementType="CALLABLE">
        {call test_page(
            #{start,mode=IN,jdbcType=INTEGER},
            #{end,mode=IN,jdbcType=INTEGER},
            #{count,mode=OUT,jdbcType=INTEGER},
            #{emps,mode=OUT,jdbcType=CURSOR,javaType=ResultSet,resultMap=TestPge}
        )}
    </select>

 

posted @ 2019-08-20 22:21  LeeJuly  阅读(136)  评论(0)    收藏  举报