簡體   English   中英

獲取池JDBC DataSource的通用方法?

[英]Generic way to get pooled JDBC DataSource?

我正在嘗試在我的應用程序中獲取池化的JDBC數據源。 我正在編寫一個開放源代碼庫,並且希望使配置盡可能地可配置。 我寧願不使用JNDI也不強制使用任何特定類型的配置文件。

現在,我這樣做:

MysqlConnectionPoolDataSource ds = new MysqlConnectionPoolDataSource();
ds.setDatabaseName("blah");
ds.setUrl("jdbc:mysql://blaggablah");
ds.setUser("jimbob");
ds.setPassword("dweezil");

如果將來想使用MySQL以外的其他東西,顯然不理想。

是否有某種通用的PooledDataSourceFactory可以接受一些參數,例如數據庫類型和連接信息,並給我一個池化的DataSource?

我不確定您要創建哪種類型的應用程序(庫?),但是除非它是一個Web應用程序。 堆棧之類的東西,您可以要求客戶端程序員例如通過構造函數傳入數據源。 這確實是依賴注入的要點。

如果您的應用程序。 例如網絡應用。 像Django這樣的堆棧,您仍然可以做到這一點,以便您在內部將數據源傳遞給中間件(又名DI)。 這樣的設計促進了模塊化,並使得在其他項目中易於使用該部分代碼。 但是,您必須以某種方式從配置轉到DataSource,因此在某個時候,您需要確定其實現的機制(例如JNDI)。 我認為這完全可以接受。

您可以使用標准的緩沖池/緩存庫,並讓用戶對其進行配置。 像Apache Jakarta Pool還是ehcache?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM