Java PreparedStatement语法

问题描述 投票:0回答:1

这是java中预准备语句的正确语法:

INSERT INTO table (id, version, data)
  VALUES (?, ?, ?)
  ON DUPLICATE KEY UPDATE 
    data = IF(version > values(version), data, values(data)),
    version = IF(version > values(version), version, values(version))

我正在寻找利用Prepared Statement addBatch从java中的for循环中插入或更新数百万行的最佳方法。

java sql syntax prepared-statement
1个回答
2
投票

如果SQL语句正确,则需要将其包装如下:

String sql = ...
PreparedStatement prep;
prep = conn.prepareStatement(sql);
prep.setInt(1, x);
prep.setString(2, y);
prep.setString(3, z);
prep.execute();

要使用addBatch,请使用:

String sql = ...
PreparedStatement prep;
prep = conn.prepareStatement(sql);
for (...) {
    prep.setInt(1, x);
    prep.setString(2, y);
    prep.setString(3, z);
    prep.addBatch();
}
prep.execute();
© www.soinside.com 2019 - 2024. All rights reserved.