Java 如何使用GenericStoredProcedure在spring引导中将字符串设置为输入参数?
这是我正在尝试的代码Java 如何使用GenericStoredProcedure在spring引导中将字符串设置为输入参数?,java,spring,stored-procedures,spring-jdbc,Java,Spring,Stored Procedures,Spring Jdbc,这是我正在尝试的代码 { StoredProcedure procedure = new GenericStoredProcedure(); procedure.setDataSource(dataSource); procedure.setSql("Process_Procedure"); procedure.setFunction(false); SqlParameter[] dec
{
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转换为NumberFormat中的SQL
如果我只有整数参数,它可以正常工作,但在这里我必须插入一个字符串参数,这给了我一个例外。当您有多个输入参数时,您必须传递Map或ParameterMapper以执行方法。 您可以找到有关GenericsToredProcess的更多详细信息。 检查该链接,您可以看到GenericsStoredProcedure扩展了StoredProcedure,并且它使用从StoredProcedure类继承的执行方法:此实现不提供用于调用的类型化方法,因此执行必须使用GenericsStoredProcedure.executejava.util.Map或StoredProcedure.executeorg.springframework.jdbc.core.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>);