将SQLite版本更新为3.25>

时间:2019-03-10 18:02:27

标签: java sqlite

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

谢谢。

0 个答案:

没有答案