我正在开发JSP应用程序,现在我真的很困。 DB Admin给了我一个存储过程,他希望我传递与该存储过程中的值相对应的列名。我问他是否可以在准备好的语句中传递索引值而不是列名,但是他说我如果使用索引值可能是一个主要问题。因此,请提出一种建议,使我可以在准备好的语句中传递列名,而不是索引值。
例如-当前说我的程序被称为
mystmt = conn.preparestatement("exec p_addeditcustomer ?,?,?");
mystmt.setString(1,"A");
mystmt.setString(2,"B");
mystmt.setString(3,"C");
现在,我的数据库管理员希望我通过
mystmt.setString("@CustomerName","A");
mystmt.setString("@CustomertTitle","B");
mystmt.setString("@CustomerCountry","C");
请告诉我我该怎么做。我真的很笨。
最佳答案
只需使用CallableStatement,它就可以与存储过程一起使用:
CallableStatement cstmt = conn.prepareCall("{call p_addeditcustomer(?,?,?)}");
cstmt.setString("CustomerName", "A");
cstmt.setString("CustomertTitle", "B");
cstmt.setString("CustomerCountry", "C");