簡體   English   中英

存儲過程參數名稱在PreparedStatement中而不是參數索引中?

[英]Stored procedure parameter names in a PreparedStatement instead of parameter indexes?

現在,當我在PreparedStatement調用存儲過程時,必須將參數添加到CallableStatement如下所示:

procStmt.setString(1, "a");
procStmt.setString(2, "b");
procStmt.setString(3, "c");
// etc...

一旦您正在調用的存儲過程中有大約50個以上的參數,並且不需要全部,那么這將變得非常繁瑣。 有沒有辦法像這樣做:

procStmt.setString("myParameter", "a");
procStmt.setString("yourParameter", "b");
procStmt.setString("ourParameter", "c");
// etc...

這樣,參數就直接傳遞給需要它們的參數,而您不必擔心通過參數發送的順序或發送空String對象等的String

JDBC不支持命名參數。 如果您使用的是Spring,則建議使用Spring JDBCTemplate NamedParameterJdbcTemplate 它可以在沒有整個IoC容器的情況下使用。

為什么要使用PreparedStatement ..您可以使用CallableStatement調用存儲過程,而Callable Statement提供了通過參數名稱設置值的選項。

請參考http://docs.oracle.com/javase/7/docs/api/java/sql/CallableStatement.html#setString(java.lang.String,%20java.lang.String)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM