Java对存储过程的调用方法
作者:网络转载 发布时间:[ 2014/11/6 11:13:13 ] 推荐标签:Java 程序 软件开发
一、Java怎样实现对存储过程的调用:
A:不带输出?数的
create procedure getsum
@n int =0<--此处为?数-->
as
declare @sum int<--定义变量-->
declare @i int
set @sum=0
set @i=0
while @i<=@n begin
set @sum=@sum+@i
set @i=@i+1
end
print 'the sum is '+ltrim(rtrim(str(@sum)))
在SQL中运行:
exec getsum 100
在JAVA中调用:
JAVA能够调用 可是在JAVA程序却不能去显示该存储过程的结果 由于上面的存储过程的?数类型int 传递方式是in(按值)方式
import java.sql.*;
public class ProcedureTest
{
public static void main(String args[]) throws Exception
{
//载入驱动
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
//获得连接
Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");
//创建存储过程的对象
CallableStatement c=conn.prepareCall("{call getsum(?)}");
//给存储过程的?数设置值
c.setInt(1,100); //将第一个?数的值设置成100
//运行存储过程
c.execute();
conn.close();
}
}
B:带输出?数的
1:返回int
alter procedure getsum
@n int =0,
@result int output
as
declare @sum int
declare @i int
set @sum=0
set @i=0
while @i<=@n begin
set @sum=@sum+@i
set @i=@i+1
end
set @result=@sum

sales@spasvo.com