2016-11-01 54 views
-1

我已經創建了一個以MySQL作爲數據庫的Java Swing應用程序,現在我在線託管我的MySQL數據庫並將Swing應用程序存儲在本地,現在爲了實驗我已經託管我的數據庫,即https://www.freemysqlhosting.net/帳戶上的MySQL數據庫,因爲它允許免費託管一段時間,也連接是成功的,但工作,但應用程序工作太慢,假設如果我必須搜索任何條目從搖擺應用程序從奧林主機數據庫它工作太慢,它發生像我必須按任何鍵或按鈕,並且必須等待事務處理。連接池技術是否可以解決性能問題,如果是,哪一個最好,哪個不能解決這個問題。請幫助連接池是否使Java Swing應用程序對遠程MySQL數據庫工作更快

下面是我寫,使數據庫事務的代碼,我這樣做,每次我做一個數據庫訪問

public ArrayList<ChargeSheet> readByAllCompanyInfo(String cityname) 
{ 
ArrayList<ChargeSheet> list = new ArrayList<ChargeSheet>(); 
con=db.getConnection(); 
try{ 
    pst = con.prepareStatement("select * from tblcompanyinformation where companyname = ?"); 
    pst.setString(1,cityname); 
    rs = pst.executeQuery(); 
    while(rs.next()){ 
     ChargeSheet clientInformation=new ChargeSheet(); 
     clientInformation.setRecieptno(rs.getInt(2)); 
     clientInformation.setPresentdate(rs.getString(3)); 
     clientInformation.setCompanyname(rs.getString(4)); 
     clientInformation.setPhone(rs.getString(5)); 
     list.add(clientInformation); 
    } 
} 
catch(SQLException ex){ 
    setLastError(ex.getMessage()); 
} 
finally{ 
    db.closeConnection(); 
} 
return list; 
} 
+3

這取決於您是否目前爲每個數據庫訪問打開和關閉連接,或者打開一個連接並在應用程序的整個生命週期中保持打開狀態?如果第一個,那麼是連接池可以提高性能,如果第二個則不太可能。 –

+0

是的第一個我打開和關閉每個數據庫訪問的連接 – user2200561

+0

@Mark Rotteveel我沒有任何類似應用程序的會話或生命週期,目前,如果我必須做的沒有連接池我必須打開連接並保留它應用程序的生命週期可以請你告訴我怎麼做。每次我進行數據庫訪問時,我都會顯示代碼在哪裏打開和關閉應用程序,我將編輯上述問題 – user2200561

回答

0

與該代碼,很可能使用連接池將提高性能。特別是如果您使用啓用了SSL的連接。

(當然,這是假設你使用相同的池連接。)

如果是,這是最好的....

建議是題外話了StackOverflow上,但我相信你可以找到一個網站列出並比較一些流行的替代品。