存储过程:
--
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();
}
}


本文介绍了一个使用Java调用SQL Server存储过程的具体实例。该示例详细展示了如何通过Java建立数据库连接、设置存储过程参数并执行调用,同时处理了调用结果。对于希望在Java应用程序中集成数据库存储过程的开发者来说,这是一个很好的实践案例。
161

被折叠的 条评论
为什么被折叠?



