2011-08-30 124 views
0

我正在研究下面提到的解決方案,但找不到任何最佳實踐/工具。 對於webservice中接收到的一批請求(比如說5000個唯一標識和記錄),它必須爲數據庫中的這些唯一標識獲取行,並將它們保存在緩衝區(或緩存)中,並將其與webservice中收到的記錄進行比較。如果某個特定數據(如列)發生更改,該數據將在表中針對該唯一ID進行更新。反過來,該表的子表也會受到影響。例如,如果有人更改他的筆記本電腦型號和國家,則型號將在另一個表中的表格和國家/地區值中更新。同樣,它在短時間內訪問多個表。一個小時內一次通話中web服務呼叫的最大記錄可能達到70K。多次訪問數據庫

我沒有任何其他選擇,而不是在java中實現它。有沒有實施這個的好習慣,還是可以使用任何開源的java工具來實現。請建議。謝謝。

回答

0

Hibernate可能是你應該嘗試的第一件事。我傾向於避免這種情況,因爲它對我的大多數應用程序來說都是過度的,但它是訪問數據庫的標準工具,任何知道Java的人都應該至少理解它。有許多其他的解決方案可以使用,但Hibernate是最常用的。

0

JDBC是用來訪問關係數據庫的API。實用的性能和安全提示:

對JDBC的教程參見http://download.oracle.com/javase/tutorial/jdbc/

+0

這個downvoter能解釋他的downvote嗎? –

+0

您提供可能有意義或無意義的特別建議。例如,由於此處未提及的原因,「分別執行每個更新」可能至關重要。 – Ingo

+0

這只是一個性能提示,正如我的答案中的文字。 OP可以決定它是否適用於他的問題(但是,鑑於他的任務描述,它似乎適用)。但至少,我給了他一個建議,可以提高他的更新表現。大多數ORM默認使用批量更新,因爲在99%的情況下,它們不會導致任何問題。 –

0

這聽起來並不複雜。當然,你必須知道(或學習):

  • SQL
  • JDBC

然後你可以通過記錄Web服務數據記錄,每個記錄執行以下操作:

fetch corresponding database record 
for each field in record 
    if updated 
     execute corresponding update SQL statement 
commit // every so many records 

對於體面的RDBMS,每小時70K記錄應該不是最輕微的問題。