Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用GenericStoredProcedure在spring引导中将字符串设置为输入参数?_Java_Spring_Stored Procedures_Spring Jdbc - Fatal编程技术网

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>);