首页 > 代码库 > 存储过程
存储过程
概念:用当地数据库语言,写的一段业务逻辑算法,并将该算法存储在客户端
操作存储过程:
CallableStatement接口==>专用于操作存储过程的接口。
SQL语句:
1)删除存储过程add_pro
DROP PROCEDURE [IF EXISTS] add_pro;
2)将SQL语句的结束符号改为//,其它符号也行。
原因:存储过程的结束标志也是";", 若不区分会有二义性
delimiter //
3)用SQL语句求两者之和【out:代表返回值】
CREATE PROCEDURE add_pro(a INT, b INT, OUT sum INT) BEGIN SET sum = a + b; END;
4)调用存储过程
语法: {CALL 存储过程名 (参数1, 参数2, ...)}
code:
1》SQL语句(创建存储过程):
DROP PROCEDURE IF EXISTS add_pro; delimiter // CREATE PROCEDURE add_pro(a INT, b INT, OUT sum INT) BEGIN SET sum = a + b; END; //
2》JAVA语句(调用存储过程):
//获得接口 cstmt = conn.prepareCall(SqlMapping.CALL_SQL);//SQL语句:{CALL add_pro (?, ?, ?) } //绑定三个参数(前两个是输入,后一个是输出,需要注册。输入输出位置可变) cstmt.setInt(1, 100); cstmt.setInt(2, 200); //注册第三个参数为输出参数,其中Types.INTEGER表示SQL与JDBC之间的映射类型 cstmt.registerOutParameter(3, Types.INTEGER); //调用存储过程 cstmt.execute(); //获取输出结果 int sum = cstmt.getInt(3); System.out.println("sum = " + sum);
注意:
1)使用存储过程需要用到CallableStatement接口,同时需要使用如下SQL命令调用:
{CALL 存储过程名 (参数1, 参数2,...)}
2)对于存储过程的输出参数,需要注册:
cstmt.registerOutParameter(3, Types.INTEGER);
4)取得返回值时,需要按照输出参数的位置来取
存储过程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。