SimpleJdbcCall
không thể gọi nhiều hơn một thủ tụcSimpleJdbcCall không thể gọi nhiều hơn một thủ tục
này là mã thử nghiệm của tôi:
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());
}
}
trong các mã, tôi đã xác định simpleJdbcCall
<bean id="simpleJdbcCall" class="org.springframework.jdbc.core.simple.SimpleJdbcCall" >
<constructor-arg ref="dataSource" />
</bean>
và thủ tục proc1
nhận 2 paramaters, thủ tục adn proc2
nhận 1 paramater.
Khi tôi chạy nó, ngoại lệ đã xảy ra.
Sau đó, tôi gỡ lỗi và phát hiện ra rằng AbstractJdbcCall.callString
vẫn là CallString: {call proc1(?, ?)}
khi gọi proc2
.
Vì vậy, đó có phải là lỗi của Spring không?
Và có ai cho tôi biết cách liên hệ với tác giả Thomas Risberg không?
Cảm ơn bạn đã trả lời, tôi phải tạo một cá thể SimpleJdbcCall mới khi tôi gọi thủ tục được lưu trữ khác. – jiucai