import java.sql.*;
/**
 * Java中调用存储过程
 *
 * @author JRunner
 *
 * 2009-10-31
 *
 * Email:jrunner@sina.com
 */
public class TestProc {
 /**
  * @param 入口
  * @throws ClassNotFoundException
  * @throws SQLException
  */
 public static void main(String[] args) throws ClassNotFoundException,
   SQLException {
  String msg = "";
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  Connection conn = DriverManager.getConnection(
    "jdbc:sqlserver://localhost:1433;DatabaseName=JRun", "sa", "");
  CallableStatement cs = conn
    .prepareCall("{call UpdateUserById(?,?,?,?,?,?)}");
  cs.registerOutParameter(6, Types.VARCHAR);
  cs.setString(1, "1");
  cs.setString(2, "JRunner");
  cs.setString(3, "JRunner");
  cs.setString(4, "3");
  cs.setString(5, "3");
  cs.execute();
  msg = cs.getString(6);
  cs.close();
  conn.close();
  System.out.println(msg);
 }
}

//---------------------------------SQL------------------------------------------------
/*
create database JRun
go
use JRun
go
create table t_user
(
 u_id int identity(1,1) not null,
 u_name varchar(20) not null,
 u_password varchar(20) not null,
 u_sex int not null,
 u_age int not null
)
go
create proc UpdateUserById
 @u_id int,
 @u_name varchar(20),
 @u_password varchar(20),
 @u_sex int,
 @u_age int,
 @msg varchar(50) output
as
update t_user set u_name=@u_name, u_password=@u_password, u_sex=@u_sex, u_age=@u_age
where u_id=@u_id
if(@@rowcount > 0)
 set @msg = '成功的修改了一条数据'
else
 set @msg = '修改失败'
go
insert into t_user(u_name,u_password,u_sex,u_age) values('JRunner','JRunner',1,1)
declare @msg varchar(50)
exec UpdateUserById 1,'Java','Java', 2, 2, @msg output
select @msg
select * from t_user
*/