package runqianapp;
import com.runqianapp.schedule.interfaces.IDBAccess;
import com.runqianapp.schedule.utils.ScheduleConfig;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TaskDelete {
//需要删除 T_task、T_taskargument(任务参数列表)、T_taskgroup(任务组)、T_taskInstance(任务实例)
IDBAccess dba = null;
/**
* 删除某用户某订阅任务方法
* @param task_id 要删除的订阅任务id
* @param task_createUser 订阅任务的用户
*/
public boolean deleteTask(String task_id,String task_createUser){
boolean flag = false; //用来判断当前用户是否订阅某个任务
boolean result = false; //作为返回值,判断删除操作是否成功
try{
dba = ScheduleConfig.getInitDBAccess();
String sql = "select task_id form t_task where task_createUser = ?";
Object[] params = new Object[]{String.valueOf(task_createUser)};
ResultSet rs = dba.executeQuery(sql, params);
while(rs.next()){
String temp = rs.getString(task_id);
if(temp.equalsIgnoreCase(task_id)){
flag = true; //true代表当前用户存在传入的订阅任务,可以进行下一步的删除
break;
}
}
int temp = 0;
if(true == flag){
try{
dba.startTranaction();
String deleteTaskSql = "delete from t_task where task_id = ? and task_createUser = ?";
String deleteTaskInstanceSql = "delete form t_taskInstance where task_id = ?";
String deleteTaskArgumentSql = "delete form t_taskArgumentSql where task_id = ?";
Object[] deleteParams = new Object[] { String.valueOf(task_id),String.valueOf(task_createUser) };
Object[] deleteRelateParams = new Object[] { String.valueOf(task_id)};
//System.out.println("这里被执行");
temp = dba.executeUpdate(deleteTaskSql, deleteParams);
if(temp!=0){
result = true;
}
dba.executeUpdate(deleteTaskInstanceSql, deleteRelateParams);
dba.executeUpdate(deleteTaskArgumentSql, deleteRelateParams);
dba.commit();
}catch(Exception e){
try {
dba.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally{
if (dba != null) {
dba.endTranaction();
dba.close();
}
}
}else{
System.out.println("请确认当前用户是否订阅任务:"+task_id);
}
}catch(Exception e){
e.printStackTrace();
}
return result;
}
public static void main(String args[]){
TaskDelete ttd = new TaskDelete();
ttd.deleteTask("9", "root");
}
}
package runqianapp;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import runqianapp.TaskDelete;
public class TaskDeleteServlet {
/**删除订阅任务*/
private static final String DELETETASK = "deleteTask";
/**
* get方式的请求转交给post的方式处理
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
/**
* 处理前端所有请求
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String action = request.getParameter("action");
String task_id = request.getParameter("task_id");
System.out.println(task_id);
String task_createUser = request.getParameter("task_createUser");
TaskDelete td = new TaskDelete();
if(DELETETASK.equals(action)){
boolean result = td.deleteTask(task_id, task_createUser);
out.write(result+"");
out.close();
}
}
}