如何从JDBC+;使用Vert.x从Java到Javascript?
我是vertx的noob,但我已经使用java类创建了JDBC连接管理器,在该类中我可以打印结果集中的数据:如何从JDBC+;使用Vert.x从Java到Javascript?,java,javascript,jdbc,vert.x,Java,Javascript,Jdbc,Vert.x,我是vertx的noob,但我已经使用java类创建了JDBC连接管理器,在该类中我可以打印结果集中的数据: ConnectionManager cm=ConnectionManager.getInstance(); Connection conn = cm.getConnection(); try { Statement stmt=conn.createStatement(); try { ResultSet rs = stmt.executeQ
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();
}
现在我想将我的VertxJavaScript应用程序连接到这个java类。我似乎不知道从哪里开始。我从谷歌集团找到了一些消息来源,但似乎没有一个能说明问题:
从JavaScript加载JDBC驱动程序
从Javascript执行Java
我还发现了Vert.x的jdbc持久器:
JDBC持久器
我仍在努力理解如何在我的应用程序中使用它。我会发布我可以分享的任何信息,但现在,有人能帮我吗(persistor或DirectJava通信)?谢谢。AFAIK唯一的方法就是使用事件总线。 您可以将Java代码放在一个垂直类中(或者也可以为目标创建一个模块)。像这样的
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
}
}
这是一个简单的场景。如果您想做更复杂的事情,比如向JS发送从DB接收到的字符串,您可以扩展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";
}
}
你好
卡洛用json将数据发送到javascript服务器怎么样?
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
});