Db.find(" exec sp_aa",??)方式调用存储过程有没有什么问题

发布于 2021-12-03 23:31:36 字数 514 浏览 801 评论 2

@JFinal

波总,你好,又来麻烦你了。

按照Jfinal推荐的存储过程用法是,Db.excute(ICallBack(){))的形式

现在我有一个存储过程,多表链接,需要返回较多的字段和栏位,RusltSet结果集要一条一条的遍历,而且要挨个的按栏位取值,很不方便,我期望能直接在存储过程里比较便捷的拿到List<Record>

我的问题有两个:

1.Db.find(" exec sp_aa")去执行存储过程有没有什么问题,有无连接未释放的问题?这种用法仍然能正确拿到结果,而且比较便捷,为何Jfinal更推荐CallBack这种比较繁琐的存储过程调用方式为最佳实践。

2.如果使用CallBack来调用,如何将ResultSet最便捷的转换成Record List

谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南汐寒笙箫 2021-12-04 02:08:20

引用来自“JFinal”的评论

   由于存储过程返回的数据可能是复杂多变的,所以 jfinal 并未提供数据封装支持。

1:如果 Db.find("exec sp_aa") 执行存储过程后可以正确获取到数据并封装,就用这种方式,Db.find(...) 会在 finally 块中释放资源,不必担心 connection 关闭问题

2:如果使用 CallBack,建议自建一个工具类进行封装,转成 Record list,应该很容易

剑心龙吟 2021-12-04 01:58:51

   由于存储过程返回的数据可能是复杂多变的,所以 jfinal 并未提供数据封装支持。

1:如果 Db.find("exec sp_aa") 执行存储过程后可以正确获取到数据并封装,就用这种方式,Db.find(...) 会在 finally 块中释放资源,不必担心 connection 关闭问题

2:如果使用 CallBack,建议自建一个工具类进行封装,转成 Record list,应该很容易

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文