问题描述
我是 vertx 的新手 我正在尝试使用 vertx jdbc 客户端为 db2 执行 SP,但不确定如何处理任何线索
解决方法
vertx 文档说明:
执行可调用语句(SQL 函数或 SQL 过程)你可以使用 callWithParams 。
这需要使用标准 JDBC 格式的可调用语句 { 调用 func_proc_name() },可选择包含参数占位符 例如:{ call func_proc_name(?,?) },一个包含 参数值,最后是一个包含输出类型的 JsonArray 例如:[null,'VARCHAR']。
注意输出类型的索引和参数一样重要 大批。如果返回值是第二个参数,则输出 数组必须包含一个空值作为第一个元素。
当存储过程有输入参数和结果集时,文档给出了这个例子:
String func = "{ call customer_lastname(?,?) }";
connection.callWithParams(func,new JsonArray().add("John"),new JsonArray().addNull().add("VARCHAR"),res -> {
if (res.succeeded()) {
ResultSet result = res.result();
} else {
// Failed!
}
});
当存储过程没有结果集或输出参数时,文档给出了这个例子:
String func = "{ call new_customer(?,new JsonArray().add("John").add("Doe"),null,res -> {
if (res.succeeded()) {
// Success!
} else {
// Failed!
}
});