我有一个员工表单。我使用选项卡式 Pane 来获取四个不同的选项卡。但问题是,如果我在第一个选项卡上保存数据,则只会将其保存在数据库中。在其他选项卡上保存数据之前,我关闭了整个表单。因此在数据库中,我有第一个选项卡的条目,并且没有为其他选项卡保存数据...这给我进一步处理带来了错误。我知道提交,但我不知道在哪里以及如何使用它???我必须将表单所有选项卡中的所有数据保存到数据库,如果在表单之间关闭,则不应保存任何数据...请帮助我。
我想在java编程中使用它。并且每个选项卡的数据我保存在它自己的页面上而不是最后。
最佳答案
您应该在保存第一个选项卡中的数据之前设置一个回滚点,如果在其他选项卡上出现问题,那么您可以回滚最后一个事务以放弃更改并将数据库恢复到之前的状态。
这里是一个针对 MYSQL 的示例代码。希望它会有所帮助。
Drop table Books;
CREATE TABLE Books
(
ID SMALLINT NOT NULL PRIMARY KEY,
Title VARCHAR(60) NOT NULL,
Copyright YEAR NOT NULL
)
ENGINE=INNODB;
select * from Books;
START TRANSACTION;
INSERT INTO Books VALUES (103, 'Angels', 1966);
INSERT INTO Books VALUES (104, 'Black', 1932);
SAVEPOINT sp1;
INSERT INTO Books VALUES (105, 'None', 1996);
INSERT INTO Books VALUES (106, 'A', 1980);
ROLLBACK TO SAVEPOINT sp1;
INSERT INTO Books VALUES (107, 'Postcards', 1992);
INSERT INTO Books VALUES (108, 'The', 1993);
COMMIT;
select * from Books;
关于java - 如何使用提交来保存所有查询,如果任何一个查询失败,则不应保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12506136/