北京北大青鸟:Java调用存储过程

北京北大青鸟学术部提供:

第一种情况:不带输出参数的
1编写存储过程
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)))

2.在SQL中执行测试存储过程
exec getsum 100

3. 在JAVA中调用存储过程(北京北大青鸟
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.divpareCall("{call getsum(?)}");     
    //给存储过程的参数设置值
    c.setInt(1,100); //将第一个参数的值设置成100     
    //执行存储过程
    c.execute();
    conn.close();
 }
}

第二种情况:带输出参数的(北京北大青鸟

1.带参数的带输出参数的
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

2.在查询分析器中执行
declare @myResult int
exec getsum 100,@myResult output
print @myResult

3.在JAVA中调用
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.divpareCall("{call getsum(?,?)}");
//给存储过程的第一个参数设置值
    c.setInt(1,100);
//注册存储过程的第二个参数
    c.registerOutParameter(2,java.sql.Types.INTEGER);
    //执行存储过程
    c.execute();
//得到存储过程的输出参数值
    System.out.println (c.getInt(2));
    conn.close();
 }
}

北京北大青鸟

 

北大青鸟网上报名
北大青鸟招生简章