首页 > 解决方案 > java.sql.Connection 的 AutoCommit 标志不适用于 SPARQL

问题描述

我在执行 SPARQL 查询时将 java.sql.Connection 对象的“AutoCommit”标志设置为 false,但该标志被忽略。下面给出的是执行查询的代码部分。

    Connection conn;
    OracleDataSource oracleDataSource;
    try {
        oracleDataSource = new OracleDataSource();
        oracleDataSource.setURL("");
        oracleDataSource.setUser("");
        oracleDataSource.setPassword("");
        conn = oracleDataSource.getConnection();
        conn.setAutoCommit(false);
    } catch (SQLException e) {
        LOGGER.error("Exception occurred in preparing connection: ", e.getMessage());
        throw (e);
    }

    String sparqlInsertQuery = "BEGIN SEM_APIS.UPDATE_MODEL('RDF_MODEL','xxxxxxxx'); END;";

    try (Statement stmt = conn.createStatement()) {
        stmt.executeUpdate(sparqlInsertQuery);
    } catch (SQLException e) {
        LOGGER.error("Cannot Execute Query: ", e);
        throw (e);
    }

    //conn.commit();
    conn.close();

尽管我添加了“conn.setAutoCommit(false);”,但语句“stmt.executeUpdate(sparqlInsertQuery);” 将三元组提交到模型中。如果我使用 SQL 查询,而不是 SPARQL 查询,则会考虑“AutoCommit”标志值并且一切正常。

标签: oraclejdbcsparqlsqlconnection

解决方案


推荐阅读