Java中与MSSQL存储过程交互

Java中与MSSQL存储过程交互

 1String strSQL = "{?=call mytest1(?,?)}";
 2java.sql.CallableStatement sqlStmt = con.prepareCall(strSQL);
 3 
 4sqlStmt.setString(2,"111");
 5sqlStmt.setString(3,"222");
 6 
 7sqlStmt.setString(2,"strName");//存储过程的第一个参数
 8sqlStmt.setString(3,"111");//存储过程的第二个参数
 9 
10sqlStmt.registerOutParameter(1,java.sql.Types.INTEGER);//第一个问号,return值
11sqlStmt.registerOutParameter(3,java.sql.Types.VARCHAR);//第三个问号,绑定存储过程的第二个参数
12 
13ResultSet rs = sqlStmt.executeQuery();
14rs.next();
15 
16System.out.println(rs.getString("id"));//ResultSet对象
17System.out.println(sqlStmt.getInt(1));//return值
18System.out.println(sqlStmt.getString(3));//第二个参数返回值
19
 
-------------------------------------------------------------------------------------------------------------------------
如不需要参数,直接用ResultSet rs = stmt.executeQuery(过程名);即可
-------------------------------------------------------------------------------------------------------------------------
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO
 

ALTER     PROCEDURE [mytest1]
@name1 varchar(50),
@name2 varchar(50) output
as
select top 10 * from testtable1 order by id desc
set @name2 = @name2+@name1
return 10

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
posted @ 2008-07-16 19:18  千年寒冰  阅读(714)  评论(0)    收藏  举报