java调用存储过程出现,页面出现死锁,100分请问高人

如题所述

以下是java调用mysql所写的存储过程的一个例子:(希望对你有帮助)Connectionconn=DBUtil.getConnection();ResultSetrs=null;try{CallableStatementcall=conn.prepareCall("{CallTEST_PROC_RET_CURSOR(?,?)}");call.setInt(1,6);call.registerOutParameter(2,Types.VARCHAR);StringoutStr=call.getString(2);//call.registerOutParameter(2,Types.VARCHAR);//call.registerOutParameter(3,Types.VARCHAR);call.execute();rs=call.getResultSet();while(rs.next()){System.out.println("存储过程得到的第一个结果集:"+rs.getString(4));}if(call.getMoreResults()==true){rs=call.getResultSet();while(rs.next()){System.out.println("存储过程得到的第二个结果集:"+rs.getString(2));}}System.out.println(call.getString(2));/**if(rs.next()){System.out.println("存储过程得到的第一个返回值是:"+*rs.getString(2));}*/}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-27
BEGIN
SET NOCOUNT ON;

Declare c Cursor For <select * from Task>
Open c
Fetch next From c into <params....>
While <condition..> Begin
BEGIN TRAN
--删除过期任务记录
DELETE TaskRecord where ....

--记录任务进程
SELECT xxxx FROM TaskRecord WHERE .....
IF @@ROWCOUNT=0
BEGIN
.....
INSERT INTO TaskRecord .....
END
END
ELSE IF xxxxx
BEGIN
UPDATE TaskRecord .....
END

COMMIT TRAN
Fetch next From c into ....
End
Close c
Deallocate c
相似回答