oracle - 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”标志值并且一切正常。
解决方案
推荐阅读
- skia - 如何在 Mac OS 中构建 Skia
- include-path - eiffel:类型基于未知类(即使在库中可见)
- c# - .NET Framework 和 .NET Core 中的进程地址不同
- sql - SQL 将两张表合并为一张表中的行
- mysql - 如何在 symfony 学说中使用 group by 在多个实例中恢复单个实例?
- javascript - IMPORTXML Google 表格查询 HTML
- php - 如何使用 PHP 和 MySQL 计算正在运行的函数的并发实例?
- java - 向 TableView 添加新列 - JAVA FX
- vb.net - 如何从 TextBox 的表单值设置 Crystal Report 的 FormulaFiled 值
- html - 单击Angular 9中的按钮后如何显示表单?