2013-02-13 76 views
1

我正在開發與服務器中的MySQL數據庫進行通信的Java應用程序。該應用程序應該能夠讀取XML文件中的一些數據,然後讀取database中的信息insert硬編碼SQL語句VS. Web服務來執行查詢

我曾經直接寫入SQL Statements到Java代碼,但後來有朋友建議我創建一個web服務,爲該工具做所有SQL的東西,並讓該工具的唯一工作是讀取XML並將數據發送到Web服務。

我的問題是,這是否值得這個努力?爲什麼或者爲什麼不?

+3

根據我的經驗,如果一個圖層服務超過3個不同的客戶端,那麼它是值得的。所以如果只有一個網站,我不會添加Web服務層。 – Andomar 2013-02-13 10:09:27

+1

可能但是,這一切都取決於您的應用程序的作用,以及它的用途和相關要求。對這樣一個開放式問題的完整回答需要一本書而不是SO上的一篇文章,即使那樣,答案也只會是主觀上的正確。這使得這個問題無法回答。 – Jodrell 2013-02-13 10:12:05

+0

@Andomar,一個網站可以有3個以上不同的客戶。即使您打算擁有1個客戶端,也可能存在安全性或連接性的原因,以便在Web服務後託管您的數據訪問。 – Jodrell 2013-02-13 10:19:19

回答

1

不推薦使用代碼中的SQL,因爲它很難維護。該應用程序也與數據庫結構緊密耦合。每當數據庫發生變化(或者您正在轉向新的數據庫)時,您需要對代碼進行更改並再次發佈。

我不認爲web服務是這裏的正確答案。我會建議您嘗試以下之一:

  1. 如果應用程序使用了大量的表和非常高的吞吐量並不重要,使用Hibernate作爲ORM工具。它具有許多功能,可以真正減少在數據訪問上花費的時間。

  2. 如果你沒有那麼多的表,而你沒有時間學習Hibernate,那就使用iBatis。這需要30分鐘才能掌握。它基本上允許你把你的SQL放在一個單獨的XML文件中,它將爲你讀取。對於較小的應用程序來說,它非常有用,它比Hibernate更快。

  3. 作爲最後的手段,寧願將SQL放入您打開並執行的文本文件中。

1

你打算如何創建webservice部分?如果你有時間做,值得用Core Java或任何Webservice框架來嘗試,不過我會建議使用Core Java,這有助於保持對你的工具的最小依賴。儘管如此,爲了使XML和Webservice請求同步,還需要付出很多努力。我的承擔 - 如果它沒有損壞,不要修理它。