2013-05-27 6 views
1

나는 vertx와 멍청한 놈,하지만 난 이미 내가 결과 집합에서 데이터를 인쇄 할 수있는 자바 클래스를 사용하여 JDBC 연결 관리자를 만들었습니다Vert.x에서 JDBC + Java에서 Javascript로 데이터를 가져 오는 방법은 무엇입니까?

ConnectionManager cm=ConnectionManager.getInstance(); 
Connection conn = cm.getConnection(); 
try { 
    Statement stmt=conn.createStatement(); 
    try { 
     ResultSet rs = 
     stmt.executeQuery("select username, password from users");    
     try { 
      if (rs.next()){ 
       System.out.println(rs.getString(1)); 
      } 
     } finally { 
      rs.close(); 
     } 

    } finally { 
     stmt.close(); 
    } 

} finally { 
    conn.close(); 
} 

가 지금은 자바 스크립트 응용 프로그램 내 vertx를 연결하려면 이 자바 클래스. 나는 어디서부터 시작해야할지 생각할 수없는 것 같습니다. 나는 Google 그룹스에서 몇 가지 소스를 찾았지만, 그들 중 누구도 어떤 빛을 창고에 보이지 않는다 : 나는 ' https://groups.google.com/forum/#!msg/vertx/VyZj2yqqGTM/tvnTg4T55kMJ

자바 스크립트에서 자바 스크립트 자바 실행 https://groups.google.com/forum/?fromgroups#!topic/vertx/_oJQaeH07Sg

에서

로드 JDBC 드라이버를 Vert.x에 대한 jdbc-persistor도 발견했습니다.

JDBC-persistor https://github.com/timyates/mod-jdbc-persistor/

저는 여전히 내 응용 프로그램과 함께 사용하는 방법을 이해하려고합니다. 나는 내가 공유 할 수있는 정보를 게시 할 것이지만, 지금은 누구나이 (persistor 또는 직접 java 통신)을 도와 줄 수 있습니까? 감사.

+0

를 처리하는 핸들러를 등록한다 json과 자바 스크립트 수직에 데이터? – ollins

답변

2

AFAIK하는 유일한 방법은 이벤트 버스를 사용하는 것입니다. Java 코드를 Verticle 클래스에 넣거나 다른 방법으로 목표를위한 모듈을 만듭니다. 이

public class JavaFromEverywhere extends Verticle { 

    @Override 
    public void start() throws Exception { 
     vertx.eventBus().registerHandler("invokeFromAnyLanguage", new Handler<Message<String>>(){ 
      public void handle(Message<String> e) { 
       doSomething(); 
      } 

     }); 
    } 

    private void doSomething() { 
     // your database code here 
    } 

} 

같은 뭔가 그런 다음 자바 스크립트 당신은이 간단한 시나리오

vertx.eventBus.send("invokeFromAnyLanguage", ""); 

작성해야합니다. DB에서받은 String을 자신의 JS로 보내는 것 같은 더 복잡한 일을 원할 경우 BusModBase을 확장하고 데이터를 다시 보낼 수 있습니다. 한편 당신의 JS에서 당신은 응답

public class JavaReply extends BusModBase { 

    @Override 
    public void start() { 
     eb.registerHandler("invokeFromAnyLanguage", new Handler<Message<String>>(){ 
      public void handle(Message<String> e) { 
       String something = doSomething(); 
       e.reply(something); 
      }     
     });   
    } 

    private String doSomething() { 
     // your database code here 
     return "databaseResult"; 
    } 

} 

eb.send("invokeFromAnyLanguage", "", function(javareply) { 
    // your answer in javareply 
}); 

HTH 같은 것이 당신의 JS 코드, 감사합니다

카를로 대한을 보내는 방법

관련 문제