Java 如何在停止应用程序JDBC时优雅地关闭事务
我使用事务将数据从一个地方移动到另一个地方。有些表很大,我正在调整应用程序,但有时我不想等待,我只是终止应用程序。但问题是查询已经发送到数据库,尽管我杀死了我的应用程序(代码),但事务(查询)并没有被取消。当我终止应用程序时,是否有任何方法取消或回滚事务 我知道我可以登录到DB服务器并终止查询。这不是我想用的方法。我在问,当应用程序被终止时,如何回滚或取消代码中的查询?您可以使用来取消正在运行的语句。在独立Java应用程序中,您可以在Java VM终止时调用该应用程序来关闭open语句Java 如何在停止应用程序JDBC时优雅地关闭事务,java,postgresql,jdbc,Java,Postgresql,Jdbc,我使用事务将数据从一个地方移动到另一个地方。有些表很大,我正在调整应用程序,但有时我不想等待,我只是终止应用程序。但问题是查询已经发送到数据库,尽管我杀死了我的应用程序(代码),但事务(查询)并没有被取消。当我终止应用程序时,是否有任何方法取消或回滚事务 我知道我可以登录到DB服务器并终止查询。这不是我想用的方法。我在问,当应用程序被终止时,如何回滚或取消代码中的查询?您可以使用来取消正在运行的语句。在独立Java应用程序中,您可以在Java VM终止时调用该应用程序来关闭open语句 Runt
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
for (Statement s : list of running statements) {
s.cancel();
}
}
});
您可以使用取消正在运行的语句。在独立Java应用程序中,您可以在Java VM终止时调用该应用程序来关闭open语句
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
for (Statement s : list of running statements) {
s.cancel();
}
}
});
另一个问题是,如何使用jdbc获得运行语句的列表?我不知道是否有用于此的API,或者您是否需要自己维护该列表。我建议为此发布一个新的StackOverflow问题。另一个问题,如何使用jdbc获取运行语句的列表?我不知道是否有用于此的API,或者您是否需要自己维护该列表。我建议为此发布一个新的StackOverflow问题。