0

问题基本上是确定数据访问层的最佳实践。

我想在使用数据源或传统驱动程序管理器在 Web 应用程序上加载连接之间进行选择。我很清楚以下优点

  1. 配置的灵活性
  2. 内置连接池机制

但是,如果我可以牺牲配置灵活性的优势并拥有自己的连接池机制,我还能从数据源中获得任何其他好处吗?以其他方式解决我在应用程序管理的 jdbc 驱动程序连接而不是容器管理时会面临的限制或问题。

我知道这个问题太愚蠢了,我应该知道有人处理连接比我的应用程序更有优势。但这是我无法在 Web 应用程序中使用数据源的罕见情况。我会关注以下事情

  1. 我如何更好地设计自己的连接池?
  2. 当我通过 DriverManager API 访问连接时,我还有什么需要注意的吗
4

1 回答 1

3

请注意,非常有可能DataSource根据用户输入以编程方式动态创建(由连接池支持)。

使用 Apache Commons-dbcp:

BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(DATABASE_DRIVER_CLASS);
ds.setUsername(DATABASE_USERNAME);
ds.setPassword(DATABASE_PASSWORD);
ds.setUrl(DATABASE_URL);
ds.setInitialSize(1);
ds.setMaxActive(50);
ds.setDefaultAutoCommit(false);

所以我认为问题不是真的在 aDataSource和 no-之间DataSource,而是在 container managedDataSource和 application managed之间DataSource

容器管理DataSources更容易通过服务器管理员类型进行管理。它们可以通过应用服务器 web UI 进行调整,etc 托管的应用程序DataSources没有这个优势。

于 2013-07-19T13:22:35.250 回答