数据源和连接池

   数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态的对池中的连接进行申请,使用和释放。

  JDBC 3.0规范中提供了一个支持数据库连接池的框架,这个框架仅仅规定了如何支持连接池的实现,而连接池的具体实现JDBC 3.0规范并没有做相关的规定。

  JDBC 3.0规范定义了如下的类和接口来支持数据库连接池的实现。

 ● javax.sql.ConnectionEvent: 连接事件

 ● javax.sql.ConnectionPoolDataSource: 连接池数据源

● javax.sql.PooledConnection: 被池化的连接

●javax.sql.ConnectionEventListener: 连接事件监听接口

   DataSource接口代表了数据源,它一般由数据库驱动厂商实现。通过这个接口来获得一个连接,它的主要方法如下:

 ★ getConnection(): 获得一个Connection物件

★ getConnection(String username,String password): 获得一个Connection物件

★getLongWriter(): 从DataSource获得Long Writer对象,它是Print Writer的实现

★setLogWriter(PrintWriter out):设置DataSource的LogWriter

★setLoginTime():获得DataSource尝试连接数据库的最大时间

★setLoginTimeout(int seconds): 设置DataSource尝试连接数据的最大时间

如下是在Tomcat 5中配置数据源:

   在Tomcat的%Tomcat_Home%/conf/server.xml里的</Context></Host>前增加如下的描述:

<Context path="/MyRoot" docBase="MyRoot" debug="0"
                reloadable="true" crossContext="true">
                <Resource name="jdbc/bn" auth="Container" type="javax.sql.DataSource"/>
                <ResourceParams name="jdbc/bn">
                <parameter>
                   <name>factory</name>
                   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
                </parameter>
                <parameter>
                   <name>username</name>
                   <value>bn</value>
                </parameter>
                <parameter>
                   <name>password</name>
                   <value>bn</value>
                </parameter>
                <parameter>
                   <name>maxActive</name>
                   <value>20</value>
                </parameter>
                <parameter>
                   <name>maxIdle</name>
                   <value>10</value>
                </parameter>
                <parameter>
                   <name>maxWait</name>
                   <value>-1</value>
                </parameter>
                </ResourceParams>
</Context>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值