jdbc调用mysql存储过程实现代码带有输入和输出

转载自 http://www.jb51.net/article/34747.htm

1. 创建存储过程 
建立一个MySQL的存储过程 add_pro

复制代码代码如下:

delimiter // 
drop procedure add_pro // 
create procedure add_pro(a int , b int , out sum int ) 
begin 
set sum = a * b; 
end; 
//

2. 调用存储过程

复制代码代码如下:

package com.zhanggaosong; 
import java.sql.CallableStatement; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.Types; 
public class CallableStatementTest { 
public static final String DRIVER_CLASS = "com.mysql.jdbc.Driver"; 
public static final String URL = "jdbc:mysql://127.0.0.1:3306/test"; 
public static final String USERNAME = "root"; 
public static final String PASSWORD = "123456"; 
public static void main(String[] args) throws Exception { 
Class.forName(DRIVER_CLASS); 
Connection connection = DriverManager.getConnection(URL, USERNAME, 
PASSWORD); 
String sql = "{CALL add_pro(?,?,?)}"; //调用存储过程 
CallableStatement cstm = connection.prepareCall(sql); //实例化对象cstm 
cstm.setInt(1, 122); 
cstm.setInt(2, 2); // 
cstm.registerOutParameter(3, Types.INTEGER); // 设置返回值类型 
cstm.execute(); // 执行存储过程 
System.out.println(cstm.getInt(3)); 
cstm.close(); 
connection.close(); 

}

时间: 2024-10-25 18:54:44

jdbc调用mysql存储过程实现代码带有输入和输出的相关文章

Golang 用go-sql-driver 调用MySQL存储过程时的问题排查

今天在用go-sql-driver做MySQL driver调用MySQL的存储过程时遇到一个罕见的报错.本文对这个错误及其解做一个简单的总结. 1 问题描述 按照go中sql包提供的接口,应用层代码调用MySQL存储过程的代码一般如下所示: result, err := dbh.Exec("call some_procedure(?, ?)", param1, param2) if err != nil { // error handler } // using result...

php调用mysql存储过程

MYSQL存储过程 原文链接:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html 一.存储过程简介(mysql5.0以上支持) 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以

mybatics 中调用mysql存储过程。

说起mybatics 框架,身边的java开发工程师们基本上都是耳熟能详. mybatics是apache的一个开源项目,前身为ibatics,2010年此项目由apache软件基金会迁移到了google code,mybatics的确是一款十分优秀的开源持久层框架,sql代码隔离封装.自动POJO映射.jdbc 动态sql---- mybatics的好处可以说出一箩筐,然而mybatics还有一个十分优秀的特性却往往被人忽略 ----那就是mybatics还支持存储过程的调用. 不熟悉存储过程

mysql 存储过程 示例代码

drop procedure if exists P_SEQUENCE; /** 暂省略包 @AUTO LIANGRUI 2014/6/27 T_PRO_PRODUCT 表 排序 对整个表进行按序号排序 根据序号从新自然排序 重复序号的安创建日期分配序号 测试阶段 测试调用 set @merid='TEST66'; call P_SEQUENCE(@merid); **/ create procedure P_PRODUCT_SEQUENCE( in v_merchar_id VARCHAR(1

集算器调用数据库存储过程的代码示例

集算器可以方便的调用数据库的存储过程,这里通过例子来看一下具体的程序写法. 调用无返回值的存储过程 用oracle的存储过程为例,存储过程只有一个输入参数,没有输出参数: create orreplace procedure pro1 (pid IN VARCHAR) as begin insert into emp values(pid,'mike'); update emp set name='rose' where id=pid; commit; end; 在集算器中可以使用execute

mybatis调用mysql存储过程返回多结果集(完整)

最近,有个开发提了个需求,希望中间件支持调用mysql存储过程时支持多结果集返回,因为某些原因我们使用了不少的存储过程,很多复杂的逻辑目前来看交互非常的多,所以从当前的现状来说,这个需求还是蛮合理的.中午抽空特地搜了下,整合完整示例如下: 1.创建测试存储过程 delimiter $$ CREATE PROCEDURE sp_multi_resultset(IN p_operator_company_no int, IN p_operator_no int, OUT p_error_code v

jdbc调用 oracle 存储过程操作

创建有参存储函数findEmpNameAndSal(编号),查询7902号员工的的姓名和月薪,[返回多个值,演示out的用法]当返回2个或多个值,必须使用out符号当返回1个值,就无需out符号 create or replace function findEmpNameAndSal(pempno in number,pename out varchar2) return numberas psal emp.sal%type;begin select ename,sal into pename,

PHP多次调用Mysql存储过程报错解决办法

PHP多次调用Mysql数据库的存储过程会出现问题,主要问题为存储过程中执行多次SQL语句不能一一释放导致的,网上找了一些解决办法,比如使用 multi_query 然后一个一个释放,但是发现根本不适合我们的项目,我们使用CI框架写的,更多的是使用CI的数据库处理方法.所以只能另辟蹊径. 一次偶然,把Mysql链接方式改成了mysqli,两种不同的PHP连接mysql的扩展,官方在高版本中推荐使用mysqli,结果却奇迹般好了,使用Mysql长连接也行,天意么? PHP多次调用Mysql存储过程

PHP调用MYSQL存储过程实例

PHP调用MYSQL存储过程实例 标签: mysql存储phpsqlquerycmd 2010-09-26 11:10 11552人阅读 评论(3) 收藏 举报 实例一:无参的存储过程$conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!");mysql_select_db('test',$conn);$sql = "create procedure myproce()beginINSERT IN