是否可以将PreparedStatement
用于多个陈述?
,例如,我的意思是
如果
String sql = "INSERT INTO OR INGNORE ... ; UPDATE ... ; INSERT INTO ...";
此
PreparedStatement pre = conn.prepareStatement(sql);
//...
pre.executeUpdate();
仅执行第一个语句"INSERT INTO OR INGNORE ...
(直到分号)。
是否可以一次执行所有操作?
答案 0 :(得分:3)
是否可以一次执行所有操作?
这可能取决于数据库供应商对JDBC驱动程序的实现,但总的来说我不希望这样做。
答案 1 :(得分:1)
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如何在预准备语句中的参数发生变化?你怎么能动态地改变它?
答案:
你不能。如果您希望一次执行多个不同的查询,则只能使用固定语句,否则您的代码将非常大,然后您可以通过设置参数并将其添加到批处理来手动执行。如果您有1个查询获得不同的参数并且您想要一次添加所有批处理,那么批处理是好的