2016-04-20 83 views
0

我試圖從Oracle數據庫顯示一些數據。 它需要4秒以上的時間才能獲得連接。要讀取整個數據,只需要1-2秒。因此,如何提高整體響應時間。如何重新使用JDBC連接?

我試圖以這種方式

公共類的ConnectionManager {

public static Connection getConnection() { 

    Connection conn = null; 
    try { 

     OracleDataSource ods = new OracleDataSource(); 

     java.util.Properties prop = new java.util.Properties(); 
     prop.setProperty("MinLimit", "2");  
     prop.setProperty("MaxLimit", "10");  

     ods.setURL(DBProps.getProperty("oracle.url"));  

     ods.setConnectionCachingEnabled(true); 
     ods.setConnectionCacheProperties (prop);  
     ods.setConnectionCacheName("Cache");  

     conn = ods.getConnection(DBProps.getProperty("oracle.user"), DBProps.getProperty("oracle.password")); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return conn; 
    } 
} 

而在傳統的方式以及

public static Connection getConnection() { 

    Connection conn = null; 
    try { 

     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     conn = DriverManager.getConnection(DBProps.getProperty("oracle.url"), DBProps.getProperty("oracle.user"), DBProps.getProperty("oracle.password")); 

    } catch (SQLException | ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
    return conn; 

} 
+0

你使用像Hibernate的ORM的? –

+0

No.Simple JDBC Connection –

+0

另請參閱:[高性能Oracle JDBC編程](http://www.oracle.com/technetwork/articles/vasiliev-oracle-jdbc-090470.html)瞭解Oracle的UCP(Universal連接池)。 – MT0

回答

0

如果你可以使用Java EE如湯姆EE我建議嘗試調查使用JDBC連接池。

0

如果您要將代碼部署到Web服務器或應用程序服務器,請嘗試創建連接池並在不同的數據庫調用之間重複使用它。

如果您在沒有任何服務器容器的情況下運行代碼,請嘗試將自己的Connection對象緩存爲靜態變量。

或者你甚至可以考慮使用彈性框架的工作,因爲它會給你帶來很大的事務管理與任何應用服務器