Java中与MSSQL存储过程交互
Java中与MSSQL存储过程交互
1
String strSQL = "{?=call mytest1(?,?)}";
2
java.sql.CallableStatement sqlStmt = con.prepareCall(strSQL);
3
4
sqlStmt.setString(2,"111");
5
sqlStmt.setString(3,"222");
6
7
sqlStmt.setString(2,"strName");//存储过程的第一个参数
8
sqlStmt.setString(3,"111");//存储过程的第二个参数
9
10
sqlStmt.registerOutParameter(1,java.sql.Types.INTEGER);//第一个问号,return值
11
sqlStmt.registerOutParameter(3,java.sql.Types.VARCHAR);//第三个问号,绑定存储过程的第二个参数
12
13
ResultSet rs = sqlStmt.executeQuery();
14
rs.next();
15
16
System.out.println(rs.getString("id"));//ResultSet对象
17
System.out.println(sqlStmt.getInt(1));//return值
18
System.out.println(sqlStmt.getString(3));//第二个参数返回值
19![]()
String strSQL = "{?=call mytest1(?,?)}";2
java.sql.CallableStatement sqlStmt = con.prepareCall(strSQL);3
4
sqlStmt.setString(2,"111");5
sqlStmt.setString(3,"222");6
7
sqlStmt.setString(2,"strName");//存储过程的第一个参数8
sqlStmt.setString(3,"111");//存储过程的第二个参数9
10
sqlStmt.registerOutParameter(1,java.sql.Types.INTEGER);//第一个问号,return值11
sqlStmt.registerOutParameter(3,java.sql.Types.VARCHAR);//第三个问号,绑定存储过程的第二个参数12
13
ResultSet rs = sqlStmt.executeQuery();14
rs.next();15
16
System.out.println(rs.getString("id"));//ResultSet对象17
System.out.println(sqlStmt.getInt(1));//return值18
System.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
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

浙公网安备 33010602011771号