早上好, 我想通过使用odbc将我的vertx应用程序与Sql数据库连接,但是当我运行我的代码时出现一个奇怪的错误:java.sql.SQLSyntaxErrorException:user缺少权限或找不到对象:ACHAT
我试图删除?关机但它仍然存在相同的错误
这是我的代码:
public void start(Future<Void> startFuture){
String file="/Test1";
Router router = Router.router(vertx);
router.route(file).handler(routingContext -> {
HttpServerResponse response = routingContext.response();
response.setChunked(true);
JsonObject config = new JsonObject()
.put("url", "jdbc:hsqldb:mem:odbcName?shutdown=true")
.put("user", "sa")
.put("password", "****")
.put("driver_class", "org.hsqldb.jdbcDriver")
.put("max_pool_size", 30);
JDBCClient client = JDBCClient.createShared(vertx, config);
client.getConnection(res -> {
if (res.succeeded()) {
SQLConnection connection = res.result();
connection.query("select id from dbo.achat", res2 -> {
if (res2.succeeded()) {
System.out.println("oki");
}
else { System.out.println(res2.cause().toString()); }
});
} else {
System.out.println("Cnx failed !!");
}
});
routingContext.vertx().setTimer(8000, tid -> routingContext.response().end());
});
对于我的服务器:
vertx.createHttpServer()
.requestHandler(router::accept)
.listen(8085, "localhost", res -> {
if (res.succeeded()){
startFuture.complete();
}
else
startFuture.fail(res.cause());
});
答案 0 :(得分:0)
从Java应用程序连接到HSQLDB是通过JDBC而不是ODBC。您的连接设置使用JDBC。
以下行创建了与内存数据库的连接,当您启动时该数据库为空:
put("url", "jdbc:hsqldb:mem:odbcName?shutdown=true")
必须先创建架构DBO
和表ACHAT
,然后才能访问它。