有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数据库中的java循环与应用程序中的java循环

很快,我计划将我的应用程序重写为Java(从VB.NET),自从有了这个机会,我计划在新的应用程序中做大量的代码清理,就像用VB编写的一样。NET是我的第一个应用程序,它对一个人来说已经相当大了

无论如何,我一直在考虑在MySQLs存储过程中使用循环(我讨厌,我真的不知道为什么),如果查询数据库中需要执行循环的数据更好,那么使用客户端PC执行所有这些操作,然后将数据发送回数据库

操作示例:在我的应用程序中,货物进出。当我销售商品时,我需要使用先进先出规则将销售与以前购买的商品联系起来。例如,我买了10个香蕉,然后又买了10个,然后又买了20个。然后我想卖30个,所以我把前10个香蕉和剩下的20个联系起来,我把它和另外10个联系起来,剩下的10个,然后我把它和最后一批香蕉联系起来,但我没有全部用掉,所以我剩下20个香蕉

在我看来:

  1. 存储过程中的循环应该更快,因为它在一个地方获得了所有数据,但我不确定在数据库中执行这种操作是否是一种好的做法

  2. 应用程序中的循环需要从数据库中获取数据,然后将其发送回数据库,这样可能会造成问题,但我个人认为,使用SQL以外的其他语言的循环更易于读取和调试

你觉得怎么样


共 (1) 个答案

  1. # 1 楼答案

    要客观地回答这个问题,我会说:这取决于查询的复杂性、需要处理的数据量以及使用的DBMS

    我还想补充一点,因为数据是在数据库中处理的,所以它不必比应用程序更快——正如Gordon Linoff所写,数据库的主要质量在于基于SQL集的操作

    如果您不分析数百个数据集,那么您可能不需要太多地担心性能,而是更关心哪种方式是最易于维护的

    根据我的经验,提供过滤数据的简单选择和在我的应用程序中处理它们的智能循环的组合总是做得很好,因为它是可维护的,并且速度相当快

    在您的示例中,这意味着:使用SQL对您的库存进行香蕉过滤,并按日期对其进行排序(显然)。然后循环应用程序中的结果,并在获得所需数量的香蕉后停止

    使用加窗求和函数,您甚至可以将查询结果限制为数量的累计和通过某个值