diff --git a/README.md b/README.md index 3ba2d2d..24d332d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,54 @@ +# Table of Contents + +* [简介](#简介) +* [使用例子](#使用例子) + * [需求](#需求) + * [工程环境](#工程环境) + * [主要步骤](#主要步骤) + * [创建项目](#创建项目) + * [引入依赖](#引入依赖) + * [编写`dbcp.prperties`](#编写dbcpprperties) + * [获取连接池和获取连接](#获取连接池和获取连接) + * [编写测试类](#编写测试类) +* [配置文件详解](#配置文件详解) + * [基本连接属性](#基本连接属性) + * [连接池大小参数](#连接池大小参数) + * [缓存语句](#缓存语句) + * [连接检查参数](#连接检查参数) + * [事务相关参数](#事务相关参数) + * [连接泄漏回收参数](#连接泄漏回收参数) + * [其他](#其他) +* [源码分析](#源码分析) + * [创建数据源和连接池](#创建数据源和连接池) + * [BasicDataSource.getConnection()](#basicdatasourcegetconnection) + * [BasicDataSource.createDataSource()](#basicdatasourcecreatedatasource) + * [获取连接对象](#获取连接对象) + * [PoolingDataSource.getConnection()](#poolingdatasourcegetconnection) + * [GenericObjectPool.borrowObject()](#genericobjectpoolborrowobject) + * [GenericObjectPool.create()](#genericobjectpoolcreate) + * [PoolableConnectionFactory.makeObject()](#poolableconnectionfactorymakeobject) + * [空闲对象回收器Evictor](#空闲对象回收器evictor) + * [BasicDataSource.startPoolMaintenance()](#basicdatasourcestartpoolmaintenance) + * [BaseGenericObjectPool.setTimeBetweenEvictionRunsMillis(long)](#basegenericobjectpoolsettimebetweenevictionrunsmillislong) + * [BaseGenericObjectPool.startEvictor(long)](#basegenericobjectpoolstartevictorlong) + * [EvictionTimer.schedule(Evictor, long, long)](#evictiontimerscheduleevictor-long-long) + * [BaseGenericObjectPool.Evictor](#basegenericobjectpoolevictor) + * [GenericObjectPool.evict()](#genericobjectpoolevict) +* [通过JNDI获取数据源对象](#通过jndi获取数据源对象) + * [需求](#需求-1) + * [引入依赖](#引入依赖-1) + * [编写context.xml](#编写contextxml) + * [编写web.xml](#编写webxml) + * [编写jsp](#编写jsp) + * [测试结果](#测试结果) +* [使用DBCP测试两阶段提交](#使用dbcp测试两阶段提交) + * [准备工作](#准备工作) + * [mysql的XA事务使用](#mysql的xa事务使用) + * [引入依赖](#引入依赖-2) + * [获取BasicManagedDataSource](#获取basicmanageddatasource) + * [编写两阶段提交的代码](#编写两阶段提交的代码) + + # 简介