2017-02-08 53 views
1

創建JDBC連接並關閉每個使用預處理語句的Java類或存儲過程調用是否是行業標準?看來在執行插入,更新和刪除操作時重用連接的方式會更有效,而不是每次實例化類時都建立連接。創建JDBC連接時的行業標準是什麼?

我不是要求引用Java Servlets。

感謝您的任何反饋和資源審查。

+3

使用連接池,通過從Servlet容器獲取連接,它將爲您管理連接池。如果不是Servlet,則應該爲連接池使用第三方庫,例如請參閱[如何在JDBC中建立連接池?](http://stackoverflow.com/q/283​​5090/5221149) – Andreas

+0

,但如果不使用servlet,仍然可以輕鬆使用連接池。取決於你的應用程序的工作情況,涉及多少連接以及多久,你需要決定這是否值得做。 (但通常是) – slipperyseal

回答

3

通常應用程序使用由DataSource提供的連接輪詢。您不必爲此運行應用程序服務器,甚至不需要運行servlet容器。只需實例化實現並從應用程序中使用它。常用的實施方式是Apache Dbcp

ds = new BasicDataSource(); 
    ds.setDriverClassName("com.mysql.jdbc.Driver"); 
    ds.setUsername("root"); 
    ds.setPassword("root"); 
    ds.setUrl("jdbc:mysql://localhost/test"); 
    ... 
    // then later in the application: 
    Connection conn = ds.getConnection(); 
    // do the stuff 
    conn.close(); // only releases conn back to pool 
    ... 
    // or better in Java 7: 
    try (Connection conn = ds.getConnection()) { 
      // do the stuff 
    } 
+0

謝謝大家的反饋意見。創建了一個Connection Manager類,並使用Connection.getConnection()完​​成了工作;就像我可以簡單地與一個方法建立聯繫。請讓我知道是否需要發佈我的更新代碼。 – dangerouslyCoding

0

您可以使用連接池,根據需要您的代碼可以從中獲取/釋放連接。一些流行的是C3P0DBCP。請參閱this answer開始。

相關問題