package protest;
import java.sql.*;
/**
create proc proc_select
@lname varchar(20),
@address varchar(20) output
as
select @address=address from userinfo where loginname=@lname
GO
*/
public class ProExecute {
public ProExecute() {
}
public static void main(String args[]) {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动
Connection con = DriverManager.getConnection("Jdbc:Odbc:test", "sa", "sa"); //获得连接
String call = "{call proc_select(?,?)}"; //调用语句
CallableStatement proc = con.prepareCall(call); //调用存储过程
proc.setString(1, "zhangdan"); //给输入参数传值
proc.registerOutParameter(2,Types.VARCHAR); //声明输出参数是什么类型的,定义用于标识一般 SQL 类型(称为 JDBC 类型)的常量的类
proc.execute(); //执行
String address = proc.getString(2); //获得输出参数
System.out.println(address);
} catch(Exception e){
e.printStackTrace();
}
}
}