2014-12-31 70 views
0

我正在執行兩個select查詢。第一個選擇查詢的結果用於獲取第二個選擇查詢的結果。 例 查詢1 =「選擇名稱,使用accountNumber從表1中」 查詢2 =「從表2,其中欄3 =使用accountNumber我們從選擇QUERY1有選擇budget_column1,budget_column2;在select語句上實現批處理

我試圖優化我的代碼。在這種情況下如何實現已準備好的Statement語句addbatch我一直在搜索,但大多數例子顯示的不是select語句中的insert,update,delete語句

+0

java.sql.ResultSet上沒有'addBatch'方法。你在想'PreparedStatement.addBatch'和相應的'executeBatch'嗎? http://docs.oracle.com/javase/8/docs/api/java/sql/PreparedStatement.html#addBatch-- http://docs.oracle.com/javase/8/docs/api/java/sql /Statement.html#executeBatch-- –

回答

1

嘗試合併將查詢轉換爲單個查詢(加入),並根據需要優化RDBMS:

select t1.name, t2.budget_column1, t2.budget_column2 
from table1 as t1, table2 as t2 
where t1.accountNumber = t2.column3; 
+0

其實在代碼中還有其他的事情發生。我無法使用連接 – amer

+0

有沒有其他方法可以通過使用resultset的addbatch或使用準備好的語句來完成此操作 – amer

+0

也許在table2中的column3上放置一個索引可使accountNumber匹配更快。 –

0

批處理執行僅適用於修改語句(插入,更新,刪除),不適用於select。

通常,您最好的選擇是允許數據庫爲您執行連接並儘可能少地執行語句。如果您確實需要執行2個不同的查詢,則需要確保您具有索引訪問權限以提供良好的性能。