Db.find(" exec sp_aa",??)方式调用存储过程有没有什么问题
波总,你好,又来麻烦你了。
按照Jfinal推荐的存储过程用法是,Db.excute(ICallBack(){))的形式
现在我有一个存储过程,多表链接,需要返回较多的字段和栏位,RusltSet结果集要一条一条的遍历,而且要挨个的按栏位取值,很不方便,我期望能直接在存储过程里比较便捷的拿到List<Record>
我的问题有两个:
1.Db.find(" exec sp_aa")去执行存储过程有没有什么问题,有无连接未释放的问题?这种用法仍然能正确拿到结果,而且比较便捷,为何Jfinal更推荐CallBack这种比较繁琐的存储过程调用方式为最佳实践。
2.如果使用CallBack来调用,如何将ResultSet最便捷的转换成Record List
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
引用来自“JFinal”的评论
由于存储过程返回的数据可能是复杂多变的,所以 jfinal 并未提供数据封装支持。
1:如果 Db.find("exec sp_aa") 执行存储过程后可以正确获取到数据并封装,就用这种方式,Db.find(...) 会在 finally 块中释放资源,不必担心 connection 关闭问题
2:如果使用 CallBack,建议自建一个工具类进行封装,转成 Record list,应该很容易
由于存储过程返回的数据可能是复杂多变的,所以 jfinal 并未提供数据封装支持。
1:如果 Db.find("exec sp_aa") 执行存储过程后可以正确获取到数据并封装,就用这种方式,Db.find(...) 会在 finally 块中释放资源,不必担心 connection 关闭问题
2:如果使用 CallBack,建议自建一个工具类进行封装,转成 Record list,应该很容易