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

天生蛋疼菊紧 发布于 2016/08/18 11:55
阅读 250
收藏 0

@JFinal

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

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

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

我的问题有两个:

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

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

谢谢

加载中
0
JFinal
JFinal

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

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

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

0
天生蛋疼菊紧
天生蛋疼菊紧

引用来自“JFinal”的评论

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

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

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

好的,多谢波总;)
返回顶部
顶部