[英]using same statement object to execute multiple queries in multiple threads?
重用java.sql.Statement對象在多個線程中同時執行多個查詢是一個好主意嗎?
我在某處讀過,建議重用同一條語句對象,但這是順序執行。
Statement statement = con.createStatement();
現在,如果我使用單個語句實例在多個線程中同時為多個查詢運行executeUpdate()
?
請注意,它不是PreparedStatement,並且沒有任何ResultSet。
我認為答案取決於兩種情況:
我的理解正確嗎?
謝謝。
不,這絕對不是一個好主意。 首先, ResultSets
與Statement
關聯。 您不希望在另一個線程突然發出新查詢時遍歷ResultSet
(至少在驅動程序運行良好的情況下, ResultSet
才會關閉)。
也沒有地方表明Statements
是線程安全的。 如果沒有明確指出,則它不是線程安全的(至少在大多數情況下)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.