前言:
因为公司业务需求,需要做一个可停止的sql执行器,前端发送sql语句进行操作,如若时间太长,可进行取消。
下面开始写实现思路吧
一、创建一个维护连接池的工具类
import com.google.common.collect.Maps;
import java.sql.Connection;
import java.util.Map;
/**
* @ClassName ConnectUtil
* Description TODO
* @Auto 吴鹏
* @Date 2019/12/1610:33
* @Version 1.0
**/
public class ConnectUtil {
// 维护一个Map<jobID, ConnectionObj>
public static Map<String, Connection> connectionMap = Maps.newHashMap();
/**
*
* @Author 吴鹏
* 根据传入的key -> jobID,删除队列中的元素
* @Description //TODO
* @Date 16:43 2019/12/16
* @Param [map, key]
* @return java.util.Map<java.lang.String,java.sql.Connection>
**/
public static void killJob(Map<String, Connection> map, String key) {
if (ConnectUtil.connectionMap.containsKey(key)) {
map.remove(key);
}
}
}
二、创建一个实体类并建表,存储map的key及sql语句
@Entity
public cl