如何使用 GenericStorageProcess 在 Spring 引导中将 String 设置为输入参数?



这是我正在尝试的代码

{
StoredProcedure procedure = new GenericStoredProcedure();
procedure.setDataSource(dataSource);
procedure.setSql("Process_Procedure");
procedure.setFunction(false);
SqlParameter[] declareparameters = {
new SqlParameter(Types.INTEGER),
new SqlParameter(Types.VARCHAR),
};
int a = 15;
String c = "purchase";
procedure.setParameters(declareparameters);
procedure.compile();
procedure.execute(a, c);
}

我得到异常:无法将类java.lang.String转换为数字格式的SQL

如果我只有整数参数,它工作正常,但在这里我必须插入一个字符串参数,这给了我例外。

当你有多个输入参数时,你必须将 Map<String、?> 或 ParameterMapper 传递给 Execute 方法。 ...

int a = 15;
String c = "purchase";
procedure.setParameters(declareparameters);
procedure.compile();
procedure.execute(<here you have to pass a Map<String, ?> or ParameterMapper as input parameters>);

在这里,您可以找到有关GenericStorageProcedure的更多详细信息。 检查该链接,您可以看到 GenericStoredProcedure 扩展了 StorageProcedure,并且它使用的是从StoredProcess类继承的 Execute 方法:"此实现不提供用于调用的类型化方法,因此执行必须使用通用 StoredProcedure.execute(java.util.Map( 或StoredProcedure.execute(org.springframework.jdbc.core.ParameterMapper( 方法之一。

在这里,您可以找到有关执行方法的所有详细信息。

最新更新