我试图在数据库上执行更新命令,但是当我执行更新命令时会引发错误,此错误似乎与我的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或更高版本?
谢谢。