如何使用 GenericStoredProcedure 在 spring 引导中将字符串设置为输入参数?
How to set String as an input parameter in spring boot using GenericStoredProcedure?
这是我正在尝试的代码
{
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);
}
我遇到异常:无法在 NumberFormat
中将 class java.lang.String 转换为 SQL
如果我只有整数参数,它工作正常,但在这里我必须插入一个字符串参数,它会给我异常。
当您有多个输入参数时,您必须将 Map 或 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>);
Here 您可以找到有关 GenericStoredProcedure 的更多详细信息。
检查 link 您可以看到 GenericStoredProcedure 扩展了 StoredProcedure 并且它使用从 StoredProcedure[=23 继承的 Execute 方法=] class: "此实现不提供用于调用的类型化方法,因此执行必须使用通用 StoredProcedure.execute(java.util.Map) 或 StoredProcedure.execute(org.springframework.jdbc.core.ParameterMapper) 方法。"
Here 您可以找到有关 Execute 方法的所有详细信息。
这是我正在尝试的代码
{
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);
}
我遇到异常:无法在 NumberFormat
中将 class java.lang.String 转换为 SQL如果我只有整数参数,它工作正常,但在这里我必须插入一个字符串参数,它会给我异常。
当您有多个输入参数时,您必须将 Map
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>);
Here 您可以找到有关 GenericStoredProcedure 的更多详细信息。 检查 link 您可以看到 GenericStoredProcedure 扩展了 StoredProcedure 并且它使用从 StoredProcedure[=23 继承的 Execute 方法=] class: "此实现不提供用于调用的类型化方法,因此执行必须使用通用 StoredProcedure.execute(java.util.Map) 或 StoredProcedure.execute(org.springframework.jdbc.core.ParameterMapper) 方法。"
Here 您可以找到有关 Execute 方法的所有详细信息。