通过JDBC驱动程序管理器使用数据源连接的优势

时间:2013-07-19 10:48:59

标签: java tomcat jdbc datasource

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

我想在使用数据源或传统驱动程序管理器之间选择加载Web应用程序上的连接。我非常清楚地了解了优势

  1. 配置的灵活性
  2. 内置连接池机制
  3. 但是,如果我可以通过配置牺牲灵活性的优势并拥有自己的连接池机制,我是否可以从数据源中获得任何其他好处。换句话说,在使用应用程序管理的jdbc驱动程序连接而不是容器管理时,我将面临哪些限制或问题。

    我知道这个问题是如此愚蠢,以至于我应该知道有人负责处理连接而不是我的应用程序。但这种情况很少见,我无法在Web应用程序中使用数据源。我会关注事情

    1. 我自己设计自己的连接池有多好?
    2. 当我通过DriverManager API
    3. 访问连接时,我还应该注意什么

1 个答案:

答案 0 :(得分: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);

所以我认为问题不是在DataSource和no-DataSource之间,而是在容器管理的DataSource和应用程序管理的DataSource之间。

容器管理的DataSource更易于通过服务器管理类型进行管理。它们可以通过应用服务器Web UI等进行调整。应用程序管理的数据源没有这个优势。