【分享】JFinal调用SqlServer存储过程,带有输出参数的情况怎么处理?

最近项目在使用JBolt极速开发平台去改造一个老项目,数据库用的是SqlServer,里面用到了存储过程去获取流水号,

大体的思路:

每日流水号表里去查询当前流水号+1

中间还得判断第一条是否已经存在记录,没有就执行insert语句创建出来,赋值流水号从1开始,如果有的话就拿到并且+1,然后执行Update更新回去,最后返回最终流水号的值。

image.png

其中用到了一个output参数,这里记录一下如何使用JFinal去调用SqlServer存储过程以及传参和获取输出型参数的最终值。

一、创建测试用存储过程

这里我新创建了一个测试用的存储过程,testPre(a,b,c) 参数a和b是int类型输入型参数,参数c是int类型输出型参数。

最后a+b的结果赋值给c。

image.png


二、具体代码实现:

使用cs.registerOutParameter(3, Types.INTEGER); 这种方式去声明注册输出型参数

执行完成后使用cs.getInt(3) 根据类型和参数的顺序号去获取输出型参数的值。


testcall.jpg


ok,这样就轻松搞定了存储过程的调用!



其它JFinal操作SqlServer相关分享教程:

【分享】如果项目数据库里直接存了照片二进制数据,如何显示在web页面?

解决JFinal生成器在Sqlserver数据库无法获取remarks列注释问题


关注JFinal学院公众号(jfinalxueyuan)

 

JFinal学院群:362557641 JFinal学院


加我微信,随时交流:

mumengmeng


image.png


评论区

ward

2020-07-29 20:01

这个我很久之前就这么用了,但是从来没想过发出来

山东小木

2020-07-29 21:57

@ward 肩负着JFinal学院服务JFinal社区开发者的使命 要整理更多实际项目中的日常开发经验分享出来

杜福忠

2020-07-30 10:35

@山东小木 JFinal布道者