概念
存储过程:
在数据库中预先定义好一组sql语句,可以被程序反复调用。
优点:
- 存储过程将一组复杂的sql语句组成一个原子操作,保证数据一致性。
- 批处理操作,保证操作高效性。
- 通过存储过程可以限制用户对数据库中敏感数据访问。提高系统安全性。
示例1
1、mysql创建存储过程。
delimiter $$
create procedure getcustomerdetails(in haha int)
begin
select * from customer where id = haha;
end $$
delimiter ;
2、mysql调用存储过程。
call getcustomerdetails(16);
3、java调用存储过程。
<mapper namespace="com.example.mymapper">
<select id="getcustomerdetails" statementtype="callable">
{call getcustomerdetails(#{customerid, mode=in, jdbctype=integer})}
</select>
<update id="updatecustomerdetails" statementtype="callable">
{call updatecustomerdetails(
#{customerid, mode=in, jdbctype=integer},
#{firstname, mode=in, jdbctype=varchar},
#{lastname, mode=in, jdbctype=varchar}
)}
</update>
</mapper>
示例2
用存储过程来实现往一个表里持续插入数据的操作。
-- 创建存储过程 delimiter $$ #重新定义结束符 create procedure person_procedure ( in minnum int, in maxnum int ) begin declare i int default minnum; #设置i初始值为minnum while i <= maxnum do insert into person (id,`name`,age,address) values (i,concat( 'cve-', i, '' ),i,concat( '地址-', i, '' )); set i = i + 1; end while; select concat(i, ' rows inserted.') as result; #打印一个输出 end $$ delimiter; #重新定义结束符 -- mysql调用存储过程 call person_procedure(1,10);
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论