【问题标题】:SimpleJdbcCall can not call more than one procedureSimpleJdbcCall 不能调用多个过程
【发布时间】:2011-09-29 09:15:59
【问题描述】:

SimpleJdbcCall 不能调用多个程序

这是我的测试代码:

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;


public class TestCall {

    public static void main(String[] args) {

        ApplicationContext context = new ClassPathXmlApplicationContext(
                new String[] { "spring/applicationContext.xml",
                        "spring/applicationDb.xml" });

        SimpleJdbcCall call = context.getBean("simpleJdbcCall",
                SimpleJdbcCall.class);

        call.withProcedureName("proc1").execute("p1", "p2");

        System.out.println("CallString: " + call.getCallString());

        call.withProcedureName("proc2").execute("p1");

        System.out.println("CallString: " + call.getCallString());

    }
}

在代码中,我定义了simpleJdbcCall

<bean id="simpleJdbcCall" class="org.springframework.jdbc.core.simple.SimpleJdbcCall" >
    <constructor-arg ref="dataSource" />
</bean>

过程proc1接收2个参数,过程proc2接收1个参数。

当我运行它时,发生了异常。

然后我调试发现AbstractJdbcCall.callString还是 呼叫字符串:{call proc1(?, ?)} 拨打proc2时。

那么,这是 Spring 的错误吗?

有没有人告诉我如何联系作者 Thomas Risberg?

【问题讨论】:

    标签: java spring jdbc spring-jdbc


    【解决方案1】:

    这个概念在 spring 参考文档中似乎不是很清楚,因为那里的所有示例都只有一个 SimpleJdbcCall 实例,它用于一个示例过程。

    每个唯一存储过程需要一个 SimpleJdbcCall 实例,并且 SimpleJdbcCall 实例只需初始化一次。一旦初始化,它们就是线程安全的。

    【讨论】:

      【解决方案2】:

      那么,这是 Spring 的错误吗?

      不,您只是使用不正确。 SimpleJdbcCalldocumentation 可能更明确,但它确实说:

      SimpleJdbcCall 是一个多线程、可重用的对象,表示对 a 存储过程或存储函数的调用。

      换句话说,SimpleJdbcCall 的每个实例都配置为调用特定的存储过程。一经配置,不得更改。

      如果需要调用多个存储过程,则需要有多个SimpleJdbcCall对象。

      【讨论】:

      • 感谢您的回复,当我调用不同的存储过程时,我必须创建一个新的 SimpleJdbcCall 实例。
      猜你喜欢
      • 2017-09-15
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 2019-06-25
      相关资源
      最近更新 更多