在应用程序服务器中创建JNDI
JDBC连接池时,我始终将类型指定为javax.sql.ConnectionPoolDataSource
。我从来没有考虑过太多,因为与非池化连接相比,更喜欢池化连接似乎很自然。
但是,在查看一些示例(专门针对Tomcat)时,我注意到它们指定了javax.sql.DataSource
。此外,似乎还有设置maxIdle
,maxWait
给人的印象是这些连接也被合并。无论选择的数据源类型如何,Glassfish都允许这些参数。
javax.sql.DataSource
集中在应用程序服务器(或servlet容器)中?javax.sql.ConnectionPoolDataSource
了javax.sql.DataSource
(反之亦然)?是的,默认情况下,Tomcat确实对定义为JNDI上下文资源的数据源使用Apache DBCP池。
从位于http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-
howto.html#JDBC_Data_Sources的
文档中
注意-
Tomcat中的默认数据源支持基于Commons项目中的DBCP连接池。但是,可以通过编写您自己的自定义资源工厂来使用实现javax.sql.DataSource的任何其他连接池,如下所述。
挖掘Tomcat 6的消息源显示,它们以这种方式获取连接工厂(以防万一,如果您不使用Context的“ factory”属性指定自己的连接工厂):
ObjectFactory factory = (ObjectFactory)Class.forName(System.getProperty("javax.sql.DataSource.Factory", "org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory")).newInstance();
奇怪的是,此类本身并没有实现ConnectionPoolDataSource,org.apache.tomcat.dbcp.dbcp.PoolingDataSource也没有实现,它由BasicDataSource内部返回
http://www.jarvana.com/jarvana/view/org/apache/tomcat /tomcat-
dbcp/7.0.2/tomcat-
dbcp-7.0.2-sources.jar!/org/apache/tomcat/dbcp/dbcp/PoolingDataSource.java?format=ok
因此,我假定当您将DataSources配置为javax.sql.ConnectionPoolDataSource时,您还使用了一些自定义工厂(这只是一个猜测,但我想否则您将在Tomcat中具有类强制转换异常,因为它们的池并没有真正提供javax.sql.ConnectionPoolDataSource的实例,仅javax.sql.DataSource的实例)。
因此,要回答有关特定情况的优缺点的问题,应将Apache DBCP与数据源工厂中的池化机制进行比较,无论使用哪种方式。
我正在尝试按照本指南创建一个为我提供数据源对象的Bean,但是当我尝试访问数据源时,例如这样: 我得到这个错误: 我多次编辑我的代码,因为我读过各种各样的例子,它们总是略有不同。 这是src/main/resources文件夹中的application.properties文件: 这是我的依赖关系: 有人知道我错在哪里吗??谢谢你
到目前为止,我们在使用QueryRunner时使用了连接对象。 我们也可以无缝地使用数据源。 以下示例将演示如何在QueryRunner和数据源的帮助下使用Read查询读取记录。 我们将从Employees Table中读取记录。 语法 (Syntax) QueryRunner queryRunner = new QueryRunner( dataSource ); Employee emp =
RESTful 的 API 都是关于访问和操作 资源,可将资源看成 MVC 模式中的 模型 在如何代表一个资源没有固定的限定,在 Yii 中通常使用 yii\base\Model 或它的子类(如 yii\db\ActiveRecord) 代表资源,是为以下原因: yii\base\Model 实现了 yii\base\Arrayable 接口, 它允许你通过 RESTful API 自定义你想要公
Yii 中的资源是和 Web 页面相关的文件,可为 CSS 文件,JavaScript 文件,图片或视频等, 资源放在 Web 可访问的目录下,直接被 Web 服务器调用。 通过程序自动管理资源更好一点,例如,当你在页面中使用 yii\jui\DatePicker 小部件时, 它会自动包含需要的 CSS 和 JavaScript 文件, 而不是要求你手工去找到这些文件并包含, 当你升级小部件时,它