[原创]Java调用mysql存储过程的一个实例_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2801 | 回复: 0   主题: [原创]Java调用mysql存储过程的一个实例        下一篇 
xiuwen.zhao
高级会员
等级:上尉
经验:668
发帖:38
精华:0
注册:1970-1-1
状态:离线
发送短消息息给xiuwen.zhao 加好友    发送短消息息给xiuwen.zhao 发消息
发表于: IP:您无权察看 2014-8-22 16:59:09 | [全部帖] [楼主帖] 楼主

1.存储过程的概念

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

2.JDBC调用存储过程的方法

JDBC提供了相应的接口来调用关系数据库中的存储过程,下面通过MySql来阐述JDBC是如何调用存储过程的。

JDBC 中的 CallableStatement 对象为所有的关系数据库管理系统提供了一种标准形式调用存储过程的方法。对存储过程的调用有两种形式:带结果参数和不带结果参数。结果参数是一种输出参数,是存储过程的返回值。两种形式都可带有数量可变的输入(IN 参数)、输出(OUT 参数)或输入和输出(INOUT 参数)的参数。

在 JDBC 中调用存储过程的语法为:{call procedure_name[(?, ?, ...)]};返回结果参数的存储过程的语法为:{? = call procedure_name[(?, ?, ...)]};不带参数的存储过程的语法为:{call procedure_name}。其中,问号代表参数,方括号表示其间的内容是可选项。

3.JDBC 调用存储过程的一个实例

下面通过一个简单的例子来了解一下CallableStatement对象的使用:

首先在数据库中,建立一个Student表,表的格式和内容如下:

id  name age major
001 Tom  20 Computer Science
002 Jack 19 Computer Science
003 Pony 22 Computer Science


建立一个存储过程,传入一个学生ID,返回这个学生详细信息。

create procedure proc (stuID varchar(20))
begin
select * from student where id=stuID;
end


下面是调用存储过程的部分java源代码: 

public static void getData() { try {
            //获取数据库连接对象
            Connection conn = getConnection();
            //实例化CallableStatement对象,调用存储过程
      CallableStatement call = conn.prepareCall("{call proc2(?)}");
            //为存储过程传入参数
            call.setString(1, "002");
            //执行存储过程,返回结果集。
            call.execute();
            //获取返回的结果集,并且依次输出。
            ResultSet rst = call.getResultSet();
            while (rst.next()) {
                  System.out.println(rst.getString(1) + "\t" + rst.getString(2)
                  + "\t" + rst.getString(3) + "\t" + rst.getString(4));
            }
      } catch (Exception e) {
            e.printStackTrace();
      }
}


该贴被xiuwen.zhao编辑于2014-8-22 17:02:09




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论