Я пытаюсь выполнить команду обновления на моей базе данных, но когда я ее выполняю, выдается ошибка. Эта ошибка выглядит как несовместимая команда с моей версией SQLite. Цель, я хотел бы обновить несколько строк в одном запросе, а затем, если есть дублированная строка, обновить его.
На моем сервере сейчас включен SQLite, 3.7
.
Это ошибка: java.sql.SQLException: near "ON": syntax error
Метод, который я использую:
public void updateMultiple(String[] strArray) {
if (strArray == null || strArray.length <= 0) return;
StringBuilder sb = new StringBuilder(strArray.length);
for (String str : strArray) {
sb.append("('" + str + "', 'yes', 'NONE', 'NONE'),");
}
Connection connection = null;
Statement statement = null;
String values = sb.toString();
String query = "INSERT INTO `" + DBManager.TABLE + "` (`address`, `proxy`, `country`, `isp`) " +
"VALUES " + values.substring(0, values.length() - 1) + " " +
"ON CONFLICT(`address`) DO UPDATE SET " +
"`proxy` = EXCLUDED.`proxy`" +
", `country` = EXCLUDED.`country`" +
", `isp` = EXCLUDED.`isp`;";
System.out.print(query);
try {
connection = getConnection();
statement = connection.createStatement();
statement.executeUpdate(query);
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
closeConnections(connection, null, null, statement);
}
}
На Maven: (Я установил зависимость от Maven, но он все еще работает на версии 3.7, а не на 3.25)
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.25.2</version>
</dependency>
У меня вопрос: как мне обновить версию SQLite (моего сервера) до 3.25 или выше?
Спасибо.