SQLServerXADataSource
接口的文檔說,它提供連接池,並且每當客戶端連接完成時,都應調用close()
方法;在這種情況下,連接將不會關閉,而是返回到池中。我正在嘗試這一點,但下一次我試圖獲得連接,它說連接已經關閉。我怎樣才能使用這個接口實現連接池?使用SQLServerXADataSource連接池
,提供了連接類是:
public class ConnectionPool {
SQLServerXADataSource ds;
Decoder dec = Base64.getDecoder();
Connection connection = null;
public ConnectionPool(InputStream inputStream) throws Exception {
ds = new SQLServerXADataSource();
boolean res = Config.load(inputStream);
if (res) {
ds.setServerName(Config.SQL_SERVER());
ds.setDatabaseName(Config.SQL_DB_NAME());
ds.setIntegratedSecurity(Config.SQL_INTEGRATED_SECURITY());
ds.setPortNumber(Config.SQL_PORT());
if (!Config.SQL_INTEGRATED_SECURITY()) {
ds.setUser(Config.SQL_USERNAME());
ds.setPassword(new String(dec.decode(Config.SQL_USER_PASSWORD())));
}
} else {
throw new Exception("Failed to load parameters.");
}
connection = ds.getConnection();
}
public Connection getConnection() throws SQLServerException {
return this.connection;
}
}
創建連接池(當用戶登錄)的對象後,我把它保存爲一個會話屬性,這樣的servlet可以當他們得到它需要它。
您能否提供一個利用此接口在Web應用程序中實現連接池的示例?我知道我做得不對,但無法弄清楚問題所在。