数据库连接池 DBCP、C3P0、Druid 连接代码
2017-04-07 16:03
351 查看
在使用数据库连接池之前首先加驱动jar包,或者pom.xml里加
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
数据库连接池DBCP:
使用之前需要添加相关的jar包,我使用的是commons-dbcp-1.4.jar,或者在pom.xml里添加
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
Java代码连接:
public class DBCP {
private static Connection conn;
private static DataSource ds;
static{
Properties pro=new Properties();
InputStream is=DBCP.class.getClassLoader().getResourceAsStream("dbcp.ini");
try {
pro.load(is);
ds=BasicDataSourceFactory.createDataSource(pro);
} catch ( Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConnection(){
try {
conn=ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
System.out.println(new DBCP().getConnection());
}
}
dbcp.ini配置文件是连接的基本内容:内容如下
#连接设置
driverClassName=org.gjt.mm.mysql.Driver
url=jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&characterEncoding=UTF-8
username=root
password=root
#<!-- 初始化连接 -->
initialSize=10
#最大连接数量
maxActive=50
#<!-- 最大空闲连接 -->
maxIdle=20
#<!-- 最小空闲连接 -->
minIdle=5
#<!-- 超时等待时间以毫秒为单位 60000毫秒/1000等于60秒 -->
maxWait=60000
#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]
#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=utf-8
#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true
#driver default 指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)
defaultReadOnly=
#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
数据库连接池C3P0:
使用之前需要添加相关的jar包,或者在pom.xml里添加
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5-pre8</version>
</dependency>
public class C3P0DB {
private static Connection conn;
private static ComboPooledDataSource ds;
static{
ds=new ComboPooledDataSource("mysql");
}
public static Connection getConnection(){
try {
conn=ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
System.out.print(C3P0DB.getConnection());
}
}
c3p0配置文档:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="automaticTestTable">con_test</property>
<property name="checkoutTimeout">30000</property>
<property name="idleConnectionTestPeriod">30</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
</default-config>
<named-config name="mysql">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&characterEncoding=utf-8
</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">30</property>
</named-config>
</c3p0-config>
数据库连接池Druid(阿里):
使用之前需要添加相关的jar包,或者在pom.xml里添加
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.14</version>
</dependency>
public class DruidDB {
private static Connection conn;
private static DataSource ds;
static{
Properties pro=new Properties();
InputStream is=DruidDB.class.getClassLoader().getResourceAsStream("druid.ini");
try {
pro.load(is);
ds=DruidDataSourceFactory.createDataSource(pro);
} catch ( Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection(){
try {
conn=ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
System.out.print(new DruidDB().getConnection());
}
}
druid.ini配置文档:
#mysql数据库
url=jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&characterEncoding=UTF-8
username=root
password=root
#filters=stat
#最大连接数量
maxActive=20
#初始化连接数量
initialSize=10
#超时等待时间以毫秒为单位
maxWait=12000
#最小空闲连接
minIdle=5
#校验连接池中限制时间超过minEvictableIdleTimeMillis的连接对象
timeBetweenEvictionRunsMillis=6000
#连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位毫秒
#minEvictableIdleTimeMillis=
#SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前
validationQuery=SELECT now();
#指明连接是否被空闲连接回收器(如果有)进行检验.
#如果检测失败,则连接将被从池中去除.
testWhileIdle=true
#指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个.
testOnBorrow=false
#指明是否在归还到池中前进行检验
testOnReturn=false
#poolPreparedStatements=true
#maxPoolPreparedStatementPerConnectionSize=20
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
数据库连接池DBCP:
使用之前需要添加相关的jar包,我使用的是commons-dbcp-1.4.jar,或者在pom.xml里添加
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
Java代码连接:
public class DBCP {
private static Connection conn;
private static DataSource ds;
static{
Properties pro=new Properties();
InputStream is=DBCP.class.getClassLoader().getResourceAsStream("dbcp.ini");
try {
pro.load(is);
ds=BasicDataSourceFactory.createDataSource(pro);
} catch ( Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConnection(){
try {
conn=ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
System.out.println(new DBCP().getConnection());
}
}
dbcp.ini配置文件是连接的基本内容:内容如下
#连接设置
driverClassName=org.gjt.mm.mysql.Driver
url=jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&characterEncoding=UTF-8
username=root
password=root
#<!-- 初始化连接 -->
initialSize=10
#最大连接数量
maxActive=50
#<!-- 最大空闲连接 -->
maxIdle=20
#<!-- 最小空闲连接 -->
minIdle=5
#<!-- 超时等待时间以毫秒为单位 60000毫秒/1000等于60秒 -->
maxWait=60000
#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]
#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=utf-8
#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true
#driver default 指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)
defaultReadOnly=
#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
数据库连接池C3P0:
使用之前需要添加相关的jar包,或者在pom.xml里添加
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5-pre8</version>
</dependency>
public class C3P0DB {
private static Connection conn;
private static ComboPooledDataSource ds;
static{
ds=new ComboPooledDataSource("mysql");
}
public static Connection getConnection(){
try {
conn=ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
System.out.print(C3P0DB.getConnection());
}
}
c3p0配置文档:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="automaticTestTable">con_test</property>
<property name="checkoutTimeout">30000</property>
<property name="idleConnectionTestPeriod">30</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
</default-config>
<named-config name="mysql">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&characterEncoding=utf-8
</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">30</property>
</named-config>
</c3p0-config>
数据库连接池Druid(阿里):
使用之前需要添加相关的jar包,或者在pom.xml里添加
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.14</version>
</dependency>
public class DruidDB {
private static Connection conn;
private static DataSource ds;
static{
Properties pro=new Properties();
InputStream is=DruidDB.class.getClassLoader().getResourceAsStream("druid.ini");
try {
pro.load(is);
ds=DruidDataSourceFactory.createDataSource(pro);
} catch ( Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection(){
try {
conn=ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
System.out.print(new DruidDB().getConnection());
}
}
druid.ini配置文档:
#mysql数据库
url=jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&characterEncoding=UTF-8
username=root
password=root
#filters=stat
#最大连接数量
maxActive=20
#初始化连接数量
initialSize=10
#超时等待时间以毫秒为单位
maxWait=12000
#最小空闲连接
minIdle=5
#校验连接池中限制时间超过minEvictableIdleTimeMillis的连接对象
timeBetweenEvictionRunsMillis=6000
#连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位毫秒
#minEvictableIdleTimeMillis=
#SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前
validationQuery=SELECT now();
#指明连接是否被空闲连接回收器(如果有)进行检验.
#如果检测失败,则连接将被从池中去除.
testWhileIdle=true
#指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个.
testOnBorrow=false
#指明是否在归还到池中前进行检验
testOnReturn=false
#poolPreparedStatements=true
#maxPoolPreparedStatementPerConnectionSize=20
相关文章推荐
- 【张小平工作日志】DBCP、c3p0、Druid、Proxool数据库连接池比较
- 数据库连接池性能横向比对(hikari druid c3p0 dbcp jdbc)
- 数据库连接的两种实现方式(读取配置文件)——DBCP&C3P0;DBCP实现连接代码,C3P0实现连接代码——包含完整代码
- 【转】数据库连接池优化配置(druid,dbcp,c3p0)
- 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)
- 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
- 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)
- 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
- 利用dbcp数据库连接池连接数据库,并利用dbtuils框架对数据库test中book表进行插入、删除、修改、查询的操作代码
- 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
- 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)
- 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)
- 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)
- 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
- 数据库连接池优化配置(druid,dbcp,c3p0)
- 数据库连接池优化配置(druid,dbcp,c3p0)
- 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)
- 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)
- HikariCP VS druid VS c3p0 VS dbcp VS jdbc 数据库连接池性能比对
- 数据库连接池 (DBCP、c3p0、Druid) 配置说明和对比