使用 java jdbc 批处理终止 Sybase 进程
Kill Sybase processes using batch with java jdbc
我使用 Java 通过在循环中发送 kill 命令来创建一个简单的数据库进程杀手。我想知道我是否可以在一次调用中使用带有 kill 命令的批处理:
try(Connection dbCon = GetDBConnection()){
try (Statement st = dbCon.createStatement();) {
dbCon.setAutoCommit(false);
for (int i = 0; i < processes.length; i++) {
st.addBatch("kill " + processes[i]);
}
st.executeBatch();
dbCon.commit();
dbCon.setAutoCommit(true);
}
catch (Exception e) {
System.out.println("Error SQL killing process: " + e);
}
catch (Exception e) {
System.out.println("Error opening connection: " + e);
}
我有机会尝试并成功了。
我添加了一些小改动来验证是否只有一个进程进行正常杀戮,如果有多个进程,则使用批处理。
try (Connection dbCon = GetDBConnection(); Statement st = dbCon.createStatement();) {
String queryKill = "kill ";
if (spids.length > 1) {
dbCon.setAutoCommit(false);
for (int i = 0; i < spids.length; i++) {
st.addBatch(queryKill + spids[i]);
System.out.println(queryKill + spids[i]);
}
st.executeBatch();
dbCon.commit();
dbCon.setAutoCommit(true);
} else {
queryKill = queryKill + spids[0];
System.out.println(queryKill + spids[0]);
st.execute(queryKill);
}
} catch (Exception e) {
killed = false;
System.out.println("Error SQL killing process: " + e);
}
我使用 Java 通过在循环中发送 kill 命令来创建一个简单的数据库进程杀手。我想知道我是否可以在一次调用中使用带有 kill 命令的批处理:
try(Connection dbCon = GetDBConnection()){
try (Statement st = dbCon.createStatement();) {
dbCon.setAutoCommit(false);
for (int i = 0; i < processes.length; i++) {
st.addBatch("kill " + processes[i]);
}
st.executeBatch();
dbCon.commit();
dbCon.setAutoCommit(true);
}
catch (Exception e) {
System.out.println("Error SQL killing process: " + e);
}
catch (Exception e) {
System.out.println("Error opening connection: " + e);
}
我有机会尝试并成功了。
我添加了一些小改动来验证是否只有一个进程进行正常杀戮,如果有多个进程,则使用批处理。
try (Connection dbCon = GetDBConnection(); Statement st = dbCon.createStatement();) {
String queryKill = "kill ";
if (spids.length > 1) {
dbCon.setAutoCommit(false);
for (int i = 0; i < spids.length; i++) {
st.addBatch(queryKill + spids[i]);
System.out.println(queryKill + spids[i]);
}
st.executeBatch();
dbCon.commit();
dbCon.setAutoCommit(true);
} else {
queryKill = queryKill + spids[0];
System.out.println(queryKill + spids[0]);
st.execute(queryKill);
}
} catch (Exception e) {
killed = false;
System.out.println("Error SQL killing process: " + e);
}