如何使用 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 方法的所有详细信息。