gpt4 book ai didi

java - 在 Java 中比较两个表列值

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:48 24 4
gpt4 key购买 nike

我在 Maximo 7.5 中有两个表。

表 A:在表 A 中具有属性 WORKORDERNUM、EXPECTEDTIME 和 FINISHTIME。表 B:在表 B 中具有属性 WORKNUM 和 STATUS。

我想做的是:如果 FINISHTIME > EXPECTEDTIME,则将表​​ B 中的 STATUS 更新为“NOTGOOD”,否则什么也不做。我为此创建了一个 CronTask,每五分钟运行一次。

现在我能想到的是两种方法。

1.循环遍历所有表A,在循环中每次对表B执行一次数据库查询。

示例代码如下:

 MboSetRemote TableA = mxs.getMboSet("TABLEA", ui);
MboSetRemote TableB = mxs.getMboSet("TABLEB", ui);
TableA.setWhere("FINISHTIME > EXPECTEDTIME");
TableA.reset();
TableB.setWhere("");
TableB.reset();
MboSet TableARow = null;
MboSet TableBRow = null;
//now it will give a list of entries. Which needs to be matched with Table B and values be updated in Table B STATUS.
while ((TableARow = TableA.getMbo(i)) != null)
{
int A = TableA.getString("WONUM");
while((TableBRow = TableB.getMbo(i)) != null)
int B = TableB.getString("WONUM");
if (A == B){
//set SATUS etc}

}
TableB.save();
TableA.save();

2. 循环遍历所有表 A。在循环内执行每次比较表 B 的值。

 MboSetRemote TableA = mxs.getMboSet("TABLEA", ui);
MboSetRemote TableB = mxs.getMboSet("TABLEB", ui);
TableA.setWhere("FINISHTIME > EXPECTEDTIME");
TableA.reset();
MboSet TableARow = null;
//now it will give a list of entries. Which needs to be matched with Table B and values be updated in Table B STATUS.
while ((TableARow = TableA.getMbo(i)) != null)
{
TableB.setWhere("WONUM= TABLEA.WONUM");
TableB.reset();
//set SATUS etc
TableB.save();
}
TableA.save();

哪个更好、更划算?

还有什么建议吗?

最佳答案

编写和使用自动化脚本很有趣,但它们并不总是完成工作的最佳工具。在这种情况下,我会使用

  1. EscalationTableA 中搜索 FINISHTIME > EXPECTEDTIME
  2. 数据库配置中的关系,从TableATableB,其中wonum = :wonum and siteid = :siteid
  3. 一个基于 TableAAction,它使用标准符号中的上述 Relationship 来设置 TableB 中的状态

与所介绍的方法相比,此方法的主要优点是可升级性和可支持性。可升级性,因为不涉及可以弃用的代码,并且因为所有配置都是可升级的,以及可支持性,因为 IBM 支持配置但不支持定制。 (对于自动化脚本,支持您编写它们的能力,但不支持您的代码本身。这与数据库配置中的关系相同。)

关于java - 在 Java 中比较两个表列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34925603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com