我正在使用mysql java连接器(mysql- connector -java-8.0.11)访问数据库。我打开一个连接并生成一些表。到目前为止,一切都正常。
但是,当我尝试在其中一个表中插入一个值时,该行立即被删除。
我使用以下代码
PreparedStatement stmt = connection.prepareStatement("INSERT INTO database_upgrade (version) VALUES (?)");
stmt.setInt(1, newVersion);
stmt.executeUpdate();
stmt.close();
当我调试到executeUpdate中时,insertId和updateCount被正确返回。但当我查看数据库时,该条目丢失了。自动增量id增加了,这表明该行被插入然后被删除,但我不知道为什么。
有趣的一点:如果我使用一个新的连接来插入,那么一切都会完美地工作。但是,当我使用前面操作中的连接时,它不会。
只是为了澄清
有人能告诉我为什么会这样吗?我在MS SQL server上使用了相同的代码,但这并没有发生。
谢谢!
发布于 2018-06-14 11:55:48
多亏了高德·汤普森我找到了。自动提交被之前的一些sql命令关闭了(我没有仔细检查)。
解决方案:我删除了sql文件中的autoCommit禁用部分。
https://stackoverflow.com/questions/50845478
复制相似问题