2012-07-02 63 views
0

因此,我正在成功連接到SQL數據庫並從中讀取數據的Web項目。連接到它的代碼看起來像這樣。優化SQL連接的Spring框架?

//From Here 
var connection = new ActiveXObject("ADODB.Connection") ; 
var connectionstring="Data Source=<server>;Initial Catalog=<catalog>;User ID=<user>; 
Password=<password>;Provider=SQLOLEDB"; 
connection.Open(connectionstring); 
var rs = new ActiveXObject("ADODB.Recordset"); 
//To Here 

rs.Open("SELECT * FROM table", connection); 
rs.MoveFirst 
while(!rs.eof) 
{ 
document.write(rs.fields(1)); 
rs.movenext; 
} 

rs.close; 
connection.close; 

簡單而有效,我讓它工作正常。但前4(從這裏標記到這裏)運行速度非常慢,我必須重新連接每次我需要讀取或寫入SQL數據庫...這是我的項目很多。所以每次我運行這個代碼(這是我在這個項目中創建的每個其他網頁上),我必須坐下來等待這段代碼運行。

我已經被告知/需要該項目,使用javascript和spring框架來配置設計。顯然,有一個方法來保存連接,所以我不必每次打開新頁面時都運行這些代碼,或者b)連接到SQL數據庫的另一種方法(用來替換那些4代碼行這兩個都與我使用Spring框架有關

我從來沒有用過Spring Framework,需要快速學習,一直在看他們的網站教程,但仍然不知道該怎麼做或如何去做這樣做讓我知道如果有什麼想法

請和謝謝

回答

0

我覺得你有什麼錯在這裏:。你不應該從JavaScript訪問數據庫,因爲任何用戶都可以訪問任何數據WA y或刪除所有內容。

您應該只訪問數據庫服務器端。

0

你需要連接池,這意味着,而不是打開,每次關閉一個新的連接,保持你即將關閉一個,看你以後可以重新使用。

不幸的是,我從來沒有在JavaScript中看到過任何可以跨頁面重用對象的東西,所以在JavaScript中無法做到這一點。無論如何,從瀏覽器直接連接到數據庫被認爲是一種非常糟糕的做法。

通常,你要做的是在java或C#應用服務器之間放置一個,並讓這些數據庫訪問,使用連接池。從你的javascript中,你接着對應用服務器進行一次AJAX調用,應用服務器將使用連接池,並返回例如JSON對象。

參見示例http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Example