2017-12-14 21 views
0

Vertx를 사용하여 SQL 스크립트 스키마를 MySQL DB에로드하려고했습니다.
비록 하나의 DB 명령을로드하거나 업데이트 할 수 있지만 한 번에 전체 스키마를로드 할 수 없습니다.Vertx에 SQL 스크립트로드

두 번째 도전 과제는 Vertx 응용 프로그램의 코드를 차단하는 것입니다. 그렇다면 어떻게 피할 수 있습니까? 여기

내가 실행하려고 된 코드입니다 :

jdbcClient.getConnection(resConn -> { 

        if(resConn.succeeded()) { 

         SQLConnection connection = resConn.result(); 

         connection.execute("<Trying to load the SQL Script schema>", resSchema -> { 


          connection.close(); 
          if(resSchema.succeeded()) { 

           async.complete(); 
          } else { 
           testContext.fail("Failed to load bootstrap schema: " + resSchema.cause().getMessage()); 
          } 
         }); 
        } else { 
         testContext.fail("Failed to obtain DB connection for schema write"); 
        } 
       }); 

답변

1

MySQL의 JDBC 드라이버는 SQL 스크립트로 파일을 실행할 수 없습니다. 스크립트를 구문 분석하고 개별 명령을 하나씩 실행해야합니다.

+0

응답 해 주셔서 감사합니다. Vertx로 작업하면서 SQL 스크립트를로드 할 수 있다면 스레드를 차단하지 않고 응용 프로그램을 중단시킬 수 있습니까? – epiyugu

+0

스크립트가 매우 길면 executeBlocking에서이 스크립트의 처리를 래핑 할 수 있습니다. – Xargos