常见的driverClassName和url:
- DB2:
- driverClassName:
com.ibm.db2.jcc.DB2Driver
- url:
jdbc:db2://localhost:50000/sample
默认端口号6789
- Oracle:
- driverClassName:
oracle.jdbc.driver.OracleDriver
- url:
jdbc:oracle:thin:@localhost:1521:orcl
默认端口号1521 - url:
jdbc:oracle:thin:@localhost:1521:db
- MySql:
- driverClassName:
com.mysql.jdbc.Driver
- url:
jdbc:mysql://localhost:3306/test
默认端口是3306
- SQLServer
jdbc:microsoft:sqlserver://localhost:1433;databaseName=db
默认端口号1433
- SQLServer 2005
jdbc:sqlserver://localhost:1433;databaseName=db
默认端口号1433
- 主要功能对比
Druid | BoneCP | DBCP | C3P0 | Proxool | JBoss | Tomcat-Jdbc | |
LRU | 是 | 否 | 是 | 否 | 是 | 是 | ? |
PSCache | 是 | 是 | 是 | 是 | 否 | 否 | 是 |
PSCache-Oracle-Optimized | 是 | 否 | 否 | 否 | 否 | 否 | 否 |
ExceptionSorter | 是 | 否 | 否 | 否 | 否 | 是 | 否 |
更新维护 | 是 | 否 | 否 | 否 | 否 | ? | 是 |
- 目前常用的数据源主要有:c3p0、dbcp、proxool、druid等
- Spring 推荐使用dbcp
- Tomcat 自带连接池dbcp
- Hibernate 推荐使用c3p0和proxool
- 阿里巴巴的druid德鲁伊
Tomcat 在 7.0 以前的版本都是使用 commons-dbcp 做为连接池的实现,但是 dbcp 饱受诟病,原因有:
- dbcp 是单线程的,为了保证线程安全会锁整个连接池
- dbcp 性能不佳
- dbcp 太复杂,超过 60 个类
- dbcp 使用静态接口,在 JDK 1.6 编译有问题
- dbcp 发展滞后
Tomcat 从 7.0 开始引入一个新的模块:Tomcat jdbc pool
- tomcat jdbc pool 近乎兼容 dbcp ,性能更高
- 异步方式获取连接
- tomcat jdbc pool 是 tomcat 的一个模块,基于 tomcat JULI,使用 Tomcat 的日志框架
- 使用 javax.sql.PooledConnection 接口获取连接
- 支持高并发应用环境
- 超简单,核心文件只有8个,比 c3p0 还 少
- 更好的空闲连接处理机制
- 支持 JMX
- 支持 XA Connection
<!-- 连接池 阿里巴巴数据源 --> <druid.version>1.0.23</druid.version> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid.version}</version> </dependency>