存储过程:
-- call MyProc( ? , ? , ? )
alter proc MyProc
(@id int ,
@customerid nchar( 5 ) output,
@employeeid int output
)as
begin
select @customerid = customerid,@employeeid = employeeid from orders
where orderid = @id
end
go
declare
@cu char ( 5 ),
@em int
exec MyProc 10248 ,@cu output,@em output
print(cast(@em as char ( 5 )) + @cu)
以下是java调用存储过程:
import java.sql. * ;
public class Study
... {
private Connection con;
public ResultSet re;
private CallableStatement callsta;
private String str;
private String use="sa";
private String pwd="sa";
public Study()
...{
try...{
//连接数据库驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String str="jdbc:microsoft:sqlserver://localhost:1433;databasename=northwind";
con=DriverManager.getConnection(str,use,pwd);
//设置存储过程参数
String st="{call MyProc(?,?,?)}";
callsta=con.prepareCall(st);
callsta.setInt(1,10248);
callsta.registerOutParameter(2,Types.VARCHAR);
callsta.registerOutParameter(3,Types.INTEGER);
//测试调用执行成功与否
System.out.println(callsta.execute());
//循环输出调用存储过程的记录结果
if(callsta.execute()==true)
...{
re=callsta.getResultSet();
while(re.next())
...{
System.out.println(re.getInt(1)+" "+re.getString(2)+" "+re.getInt(3));
}
}
else...{System.out.println("dfas");}
}
catch(Exception e)...{e.printStackTrace();}
}
public static void main(String[] age)
...{
Study study=new Study();
}
}
-- call MyProc( ? , ? , ? )
alter proc MyProc
(@id int ,
@customerid nchar( 5 ) output,
@employeeid int output
)as
begin
select @customerid = customerid,@employeeid = employeeid from orders
where orderid = @id
end
go
declare
@cu char ( 5 ),
@em int
exec MyProc 10248 ,@cu output,@em output
print(cast(@em as char ( 5 )) + @cu)
以下是java调用存储过程:
import java.sql. * ;
public class Study
... {
private Connection con;
public ResultSet re;
private CallableStatement callsta;
private String str;
private String use="sa";
private String pwd="sa";
public Study()
...{
try...{
//连接数据库驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String str="jdbc:microsoft:sqlserver://localhost:1433;databasename=northwind";
con=DriverManager.getConnection(str,use,pwd);
//设置存储过程参数
String st="{call MyProc(?,?,?)}";
callsta=con.prepareCall(st);
callsta.setInt(1,10248);
callsta.registerOutParameter(2,Types.VARCHAR);
callsta.registerOutParameter(3,Types.INTEGER);
//测试调用执行成功与否
System.out.println(callsta.execute());
//循环输出调用存储过程的记录结果
if(callsta.execute()==true)
...{
re=callsta.getResultSet();
while(re.next())
...{
System.out.println(re.getInt(1)+" "+re.getString(2)+" "+re.getInt(3));
}
}
else...{System.out.println("dfas");}
}
catch(Exception e)...{e.printStackTrace();}
}
public static void main(String[] age)
...{
Study study=new Study();
}
}