首页 > 解决方案 > SAP Hana 中基于 JDBC 的 SQL UPDATE 不是持久的

问题描述

我们目前正在从 Oracle 迁移到 SAP Hana,并且我们正在使用通过 JDBC 访问数据库的 Java 程序。

当我用 Java 对 Hana 数据库进行 SQL 更新时,此更改不会写入数据库。

更新后我用Squirrel查看表是否有变化,变化是不可见的!

如何通过 JDBC 在 Hana 中使用 UPDATE、INSERT 和 DELETE 写入数据?

标签: javajdbchana

解决方案


正如 SipCat 自己发现的那样,这种行为是由

  • 使用autocommit=false
  • 而不是 COMMITing 应用程序所做的更改。

在这种情况下,当应用程序断开数据库会话时,事务将被回滚。

一些 SQL 编辑器/查询 UI 工具(如 DBSquirrel)在每个命令后使用autocommit=true或自动发出 a COMMIT,因此可能看起来COMMIT不需要或不涉及事务处理。

那是一种错误的印象。事实上,即使SELECTs(它“只是”读取数据)在技术上总是在事务上下文中。


推荐阅读