gpt4 book ai didi

java - 将 Java 生成的 .sql 语句包装在 50 个 block 中

转载 作者:行者123 更新时间:2023-12-01 10:00:17 25 4
gpt4 key购买 nike

我有一个读取文件并生成 sql 插入语句的应用程序。现在我想将 50 条语句合并到一个 block 中:

我的解决方案不起作用并且不完整,因为可能存在只有 37 个状态的情况,但在我的情况下有 FROM DUAL;提交; 缺失。

我有点陷入困境。我想知道一种正确的方法,合并 50 条语句,当剩下的语句更少时,因为它们是最后的语句,所以它们也应该合并。

也许有人有一些想法?

架构/输出

INSERT
INTO
INTO
INTO.... (total 50 lines)
FROM DUAL;
COMMIT;

代码(摘录)

final String template = "INTO %s (%s) VALUES (%s);";
List<String> statements = new ArrayList<>();

for (int i = 1; i < lines.size(); i++) {

........

int counter = 0;
if(counter == 0) {statements.add("INSERT"); }
if(counter == 50) {statements.add("FROM DUAL;\nCOMMIT;"); counter = 0;}
counter++;
statements.add(String.format(template, tableN, cols.toString(), vals.toString())); }

最佳答案

您可以将第一个和最后一个语句移出循环:

statements.add("INSERT");
for (int i = 1; i < lines.size(); i++) {
// ...
statements.add(String.format(template, tableN, cols.toString(), vals.toString()));
}
statements.add("FROM DUAL;\nCOMMIT;");

关于java - 将 Java 生成的 .sql 语句包装在 50 个 block 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36860953/

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