Mysql存储过程
来源:互联网 发布:淘宝优惠券转换 编辑:程序博客网 时间:2024/05/16 18:11
Mysql存储过程
-- 删除存储过程DROP PROCEDURE IF EXISTS `pro`;-- 修改结束符DELIMITER //-- 存储过程过程CREATE PROCEDURE `pro` (IN a INT, IN b INT, OUT c INT)-- 开始存储过程BEGIN-- 定义循环结束标识符DECLARE Done INT DEFAULT 0;-- 定义变量DECLARE VAR_NAME, VAR_ADD VARCHAR(50);-- 定义光标(并使用参数)DECLARE CUR_USER CURSOR FOR SELECT USERNAME, ADDRESS FROM USER LIMIT a, b;-- 发生异常设置结束符, 02000 = [输入, 更新, 删除, FETCH最后一行]-- 出现错误也继续执行DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;SET -- 打开游标OPEN CUR_USER;-- 执行循环loop1: LOOP -- 获得一行 FETCH CUR_USER INTO VAR_NAME, VAR_ADD; -- 判断是否还有最后一行 IF Done = 1 THEN LEAVE loop1; END IF; -- 查询变量(返回一个结果集) SELECT VAR_NAME, VAR_ADD, 'k';END LOOP loop1;-- 关闭游标CLOSE CUR_USER;-- 设置返回值参数cSET c = a + b;-- 结束存储过程END //-- 修改结束符DELIMITER ;----------------------------------------------------set @a = 1 -- 定义变量set @c = 0 -- 定义变量call pro(@a, 10, @c) -- 执行存储过程select @c; -- 显示@c变量
MySQL 中直接用 select 即可返回结果集。
而 Oracle 则需要使用游标来返回结果集。
这一点 Mysql 相对比较方便
Java jdbc执行存储过程
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java_spring?useUnicode=true&characterEncoding=UTF-8", "root", "wjjyy");CallableStatement call = conn.prepareCall("{call pro(?,?,?)}");call.setInt(1, 1);call.setInt(2, 10);boolean execute = call.execute();// 获得返回值System.out.println("a + b : " + call.getInt(3));while (execute){ ResultSet resultSet = call.getResultSet(); while(resultSet.next()){ System.out.println(resultSet.getString(1) + ":" + resultSet.getString(2)); } resultSet.close(); System.out.println("------------------------"); execute = call.getMoreResults();}call.close();conn.close();
MySql 存储过程详情
循环
LOOP循环
名: LOOP 命令 LEAVE 名 -- back ITERATE 名 -- continue END LOOP 名
REPEAT循环
名: REPEAT 命令 UNTIL 退出条件 END REPEAT 名
WHILE循环
名: WHILE 继续循环条件 DO 命令 END WHILE 名
判断
IF 条件 THEN 命令 [ELSEIF 条件 THEN 命令] ... [ELSE 命令] END IF
分支
CASE 值WHEN 何值 THEN 命令 [WHEN 何值 THEN 命令] ... [ELSE 命令] END CASE
0 0
- 【mysql】mysql存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- 个人毕设中遇到的问题记录(1)
- [DP] BZOJ 1939 [Croatian2010] Zuma
- l2_010
- error: expected initializer before ‘&’ token
- 算术运算符
- Mysql存储过程
- java大数
- java大数板子
- CCF 201412-2
- tensorflow入门Day4-CNN
- WebGIS中自定义互联网地图局部注记的一种方案
- java求复数的加
- 1027. 打印沙漏
- iOS开发 Coretext基本用法