未锁表,执行SQL后类似死循环。

跟别的系统有一个接口,对方传参过来,我按参数到表里查询返回给对方。

现在问题是,执行sql那一句,

 listmap = this.findMapBySql("SELECT * FROM SEND_MESSAGE_DATA WHERE SAMPLE_NO_='"+ maps.get("SampleNo").toString() +"' "
                        + "AND WORKING_PROCEDURE_='"+ maps.get("WorkingProcedure").toString() +"'");

进入死循环。

 

@Component
public class DealMain   implements CommandLineRunner {
    
    class DyanHttpHandler extends BaseBO implements HttpHandler
    {    
//        private CaijiService caiji = new CaijiService();
        @Autowired
        CaijiService caijiService;
        
        @Override
        public void handle(HttpExchange arg0) throws IOException {
            System.out.println("accept an exchange from internet.....");
            
            String resp = "your request message i get it!";
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(arg0.getRequestBody()));
            StringBuffer sb = new StringBuffer("");
            String temp ="";
            while((temp = bufferedReader.readLine()) != null) {
                sb.append(temp);
            }
//            System.out.println(sb);
            JSONArray array = JSONArray.parseArray(sb.toString());
//            System.out.println("list:"+array);
            List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
            List<Map<String, Object>> test = new ArrayList<Map<String, Object>>();
            for (int i = 0; i < array.size(); i++) {
                Map<String,Object> maps =(Map)JSONObject.parseObject(array.get(i).toString());
                System.out.println(maps.get("SampleNo"));
                listmap.add(maps);
                
                listmap = this.findMapBySql("SELECT * FROM SEND_MESSAGE_DATA WHERE SAMPLE_NO_='"+ maps.get("SampleNo").toString() +"' "
                        + "AND WORKING_PROCEDURE_='"+ maps.get("WorkingProcedure").toString() +"'");
            }
            Map<String, Object> returnmap = new ConcurrentHashMap<String, Object>();
            JSONObject returnob = JSONObject.parseObject(returnmap.toString());
            arg0.sendResponseHeaders(200, returnob.toString().length());
            OutputStream out = arg0.getResponseBody();
            out.write(returnob.toString().getBytes());
            out.flush();
            arg0.close();
        }
        
    }


    @Override
    public void run(String... args) throws Exception {
        System.err.println("启动!");
        HttpServerProvider provider = HttpServerProvider.provider();
        
        HttpServer server = provider.createHttpServer(new InetSocketAddress(8080), 10);
        
        server.createContext("/ToL3", new DealMain().new DyanHttpHandler());
        
        server.setExecutor(null);
        server.start();
    }
}
 

listmap.add(maps); 把这句去掉试试