我只是想知道OracleCallableStatement和CallableStatement在性能和有效性方面的區別。OracleCallableStatement V/S CallableStatement
2
A
回答
1
OracleCallableStatement
是一個Oracle特定的接口,它最終擴展了標準接口java.sql.CallableStatement
。
除非需要訪問該接口中特定於Oracle的功能,否則不應在代碼中引用它,而應僅將代碼寫入CallableStatement
接口。這對所有JDBC代碼來說都是一個很好的實踐,並且可以讓您的應用程序在驅動程序和數據庫之間移植。
沒有性能或效率差異 - 您實際上使用的是相同的東西。
1
OracleCallableStatement擴展了CallableStatement,所以OracleCallableStatement也是一個CallableStatement。性能完全沒有區別,但如果您不需要Oracle的特殊(和非標準)功能,請繼續使用CallableStatement,這將幫助您更輕鬆地更改數據庫。順便說一下,您會發現更多熟悉CallableStatement的開發人員比後者更熟悉。
+1
另一個需要注意的是使用連接池,一些JDBC池,有一個功能來彙集準備好的語句(並且可調用語句也是一個準備好的語句)。我相信您不能將您從池中獲得的CallableStatement轉換爲OracleCallableStatement(除了通過代理主對象實現的池之外)。 – 2012-02-26 17:06:44
相關問題
- 1. CallableStatement與聲明
- 2. JDBC CallableStatement問題
- 3. 關閉一個CallableStatement
- 4. 關閉resultSet和callableStatement
- 5. 如何註冊表的CallableStatement
- 6. 的CallableStatement + +的registerOutParameter多行結果
- 7. 的PreparedStatement,CallableStatement的和性能考慮
- 8. Java Callablestatement不會等到.execute()結束
- 9. JDBC CallableStatement和Oracle SYS_REFCURSOR IN參數?
- 10. CallableStatement無法識別OUT參數
- 11. 字符編碼使用callablestatement或jdbctemplate進行mysql插入
- 12. CallableStatement PostgreSQL:無效的參數數量錯誤
- 13. 在Java EE中的CallableStatement不返回從PostgreSQL函數什麼
- 14. JDBC CallableStatement存儲過程CURSOR結果集獲取
- 15. 長時間運行CallableStatement無需等待執行
- 16. 如何從Java JDBC中的callableStatement獲取scroll_insensitive resultSet?
- 17. vs vs 2008 vs vs 2010
- 18. Exec的VS ExecWait VS ExecShell VS nsExec :: Exec的VS nsExec :: ExecToLog VS nsExec :: ExecToStack VS ExecDos VS ExeCmd
- 19. CGL vs AGL vs OpenGL vs NSOpenGL vs CoreAnimation(CALayer)
- 20. VS VS VS VS 11中的MVC測試
- 21. MobileNet VS SqueezeNet VS ResNet50 VS啓V3 VS VGG16
- 22. NTOSKRNL.EXE VS NTKRNLMP.EXE VS NTKRNLPA.EXE VS NTKRPAMP.EXE
- 23. .NET vs ASP.NET vs CLR vs ASP
- 24. JRuby:import vs include vs java_import vs include_class
- 25. codendi vs redmine vs Retrospectiva vs trac
- 26. inline vs __inline vs __inline__ vs __forceinline?
- 27. VS 2008 vs VS 2008 Express
- 28. SDI vs MDI vs TDI vs?
- 29. Atomikos vs JOTM vs Bitronix vs?
- 30. RailwayJS vs Geddy vs Express vs Socket.IO
當然,這隻適用於如果你關心可移植性。而如果你想使用Oracle特定的擴展? – cagcowboy 2012-02-26 17:00:27
@cagcowboy:你應該總是關心可移植性。如果Oracle重寫其驅動程序並更改該接口會怎樣? – skaffman 2012-02-26 17:02:04
不,OCS也是一個接口。如果你需要使用匿名的PL/SQL塊...你可以使用OCS,否則只需使用CS – 2012-02-26 17:02:15