Java 为多个报表准备的报表
是否可以对多个语句使用Java 为多个报表准备的报表,java,sqlite,jdbc,prepared-statement,Java,Sqlite,Jdbc,Prepared Statement,是否可以对多个语句使用PreparedStatement 例如,我是说 如果 String sql=“插入或插入…”;更新…;插入…” 这个 仅执行第一条语句“插入或插入…”(直到分号)。 是否可以一次执行所有操作 String[] query = { "insert into Gericht (classification,date,name,preisExtern,preisIntern) values (?,?,?,?,?)", "test" }; Prep
PreparedStatement
例如,我是说
如果
String sql=“插入或插入…”;更新…;插入…”代码>
这个
仅执行第一条语句“插入或插入…”(直到分号)。
是否可以一次执行所有操作
String[] query = { "insert into Gericht (classification,date,name,preisExtern,preisIntern) values (?,?,?,?,?)",
"test" };
PreparedStatement stmt;
for (String str : query) {
stmt = c.prepareStatement(str);
stmt.addBatch();
}
stmt.executeBatch();
下面是一个关于如何使用批处理的示例。如果它不是您想要的,请告诉我
如所愿:
@XtremeBaumer当prepared语句中的参数发生变化时如何处理?如何动态地改变它
答复:
不能。如果您希望同时执行多个不同的查询,则只能使用fixed语句,否则代码将非常大,然后您可以通过设置参数并将其添加到批处理来手动执行。如果您有一个获取不同参数的查询,并且希望一次添加所有查询,则批处理是好的
是否可以一次执行所有操作
String[] query = { "insert into Gericht (classification,date,name,preisExtern,preisIntern) values (?,?,?,?,?)",
"test" };
PreparedStatement stmt;
for (String str : query) {
stmt = c.prepareStatement(str);
stmt.addBatch();
}
stmt.executeBatch();
这可能取决于数据库供应商对JDBC驱动程序的实现,但一般来说,我不希望它起作用。您需要的是批处理。您在批处理中插入所有语句,然后执行批处理。这是mysql特有的解决方案:为什么它应该依赖JDBC?您在哪里找到的?没有指定此b因此JDBC实现者可以自由地做任何她能想到的事情for@XtremeBaumer在这个问题中,TO指的是同一字符串中的不同SQL,而这不是JDBC中批处理的目标。那么批处理的目标是什么?正如我所展示的,您可以在一个字符串中执行不同的SQL,即使是我所展示的它是一个字符串数组。你想告诉我如何多次执行同一个语句。是吗?现在看看。真的很难猜测如何使用多个语句吗?@XtremeBaumer准备好的语句中的参数何时更改?你如何动态更改它?你不能。如果你想在nce,您只能使用fixed语句,否则您的代码将非常大,然后您可以通过设置参数并将其添加到批处理来手动执行。如果您有一个获得不同参数的查询,并且希望一次添加所有查询,则批处理是好的。将您的最后一条注释添加到answet。在这种情况下,我将批准批处理