问题基本上是确定数据访问层的最佳实践。
我想在使用数据源或传统驱动程序管理器之间选择加载Web应用程序上的连接。我非常清楚地了解了优势
但是,如果我可以通过配置牺牲灵活性的优势并拥有自己的连接池机制,我是否可以从数据源中获得任何其他好处。换句话说,在使用应用程序管理的jdbc驱动程序连接而不是容器管理时,我将面临哪些限制或问题。
我知道这个问题是如此愚蠢,以至于我应该知道有人负责处理连接而不是我的应用程序。但这种情况很少见,我无法在Web应用程序中使用数据源。我会关注事情
答案 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等进行调整。应用程序管理的数据源没有这个优势。