Синтаксис Java PreparedStatement - PullRequest
       0

Синтаксис Java PreparedStatement

0 голосов
/ 14 сентября 2010

Это правильный синтаксис для подготовленного оператора в 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))

Я ищу лучший способ вставить или обновить миллионы строк из цикла for в Java, используя преимущества PreparedStatementaddBatch.

1 Ответ

2 голосов
/ 14 сентября 2010

Если оператор 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();
...