CREATE PROCEDURE [dbo].[sp_insertStudent](@name char(10),@age int,@id int OUTPUT) AS insert into Students([Name],[Age]) values (@name,@age) select @id=@@IDENTITY GO try { pstmt = con.prepareCall("{call sp_insertStudent(?,?,?)}"); pstmt.setString(1, "zengqingsong"); pstmt.setInt(2, 22); pstmt.registerOutParameter(3, Types.INTEGER); pstmt.executeUpdate(); int id = pstmt.getInt(3); System.out.println(id); } 使用返回参数的例子: CREATE PROCEDURE [dbo].[sp_insertStudent](@name char(10),@age int,@id int OUTPUT) AS insert into Students([Name],[Age]) values (@name,@age) select @id=@@IDENTITY –测试输出参数 return 30 –测试返回30 GO try { pstmt = con.prepareCall("{?=call sp_insertStudent(?,?,?)}"); pstmt.setString(2, "zengqingsong"); pstmt.setInt(3, 22); pstmt.registerOutParameter(4, Types.INTEGER); pstmt.registerOutParameter(1, Types.INTEGER); int ret = pstmt.executeUpdate(); //执行影响的行数 int ret2 = pstmt.getInt(1); //返回参数(输出参数) int id = pstmt.getInt(4); //输出参数 System.out.println(ret); System.out.println(ret2); System.out.println(id); }
|