我正在编写一个程序,它将数据插入到 MariaDB 服务器中,并且可以由不同的人同时使用。事务需要一些时间,因此可能会出现以下问题:人员 A 使用主键“c”启动事务,而当该事务尚未提交时,人员 B 想要插入具有相同主键“c”的数据。如何防止 B 使用 A 已在其未提交事务中使用的主键来启动其事务?
我使用 MariaDB 作为数据库,InnoDB 作为引擎。
我已经检查了隔离级别,但不知道如何使用它们来解决我的问题。
谢谢!
在我initialize()的Controller方法中,MyController我使用SQL查询来初始化组合框的值。但是,例如当用户不在线时,我会得到一个错误,然后我想显示一个Alert。
但是问题是,如果我在initialize()方法中这样做,将首先显示Alert,然后显示已初始化的fxml myfxml,因此Alert被其隐藏。我想原因是,在该initialize()方法中,myfxml没有一个Stage还没有,因为它仍在进行初始化,因此我的警报显示在另一个舞台。
但是,建议使用什么方法来解决此问题并将初始化方法显示为Alert的Alert作为Parent?我发现的一种方法是将Exception保存在中MyController,创建一个getter并调用如下方法:
MyController myCon = ((MyController)fxmlLoader.getController());
SQLException e = myCon.getInitializeException();
new Alert(Alert.AlertType.WARNING, e.getMessage());
Run Code Online (Sandbox Code Playgroud)
但是由于myfxml在MenuController的initialize方法中进行了初始化,因此我需要再次重复该代码,这会使我的代码混乱。
那么有没有一种解决我的问题的干净方法?
先感谢您 :)!
我有一个HashMap并且想使用 并行迭代它的值rayon。Vec我无法使用它,并且首先从值创建 a 是不可行的。
有谁知道如何做到这一点?