第三方mysql连接池_Java第三方数据库连接池库-DBCP-C3P0-Tomcat内置连接池

连接池原理

数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。

现在流行的第三方Java数据库连接池库

DBCP

它是Apache推出的Database Connection Pool,属于Apache Commons开源项目,官网:http://commons.apache.org/components.html。Commons的目的是提供可重用的、开源的Java代码。

使用步骤:

> 1 添加jar包commons-dbcp-1.4.jar  commons-pool-1.5.6.jar

>2  添加属性资源文件,命名:dbcp.properties,文件放在src目录下

#连接设置

driverClassName=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/database

username=password=#initialSize=10#最大连接数量

maxActive=50#maxIdle=20#minIdle=5#maxWait=60000#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]

#注意:"user" 与 "password"两个属性会被明确地传递,因此这里不需要包含他们。

connectionProperties=useUnicode=true;characterEncoding=utf8

#指定由连接池所创建的连接的自动提交(auto-commit)状态。

defaultAutoCommit=true#driverdefault 指定由连接池所创建的连接的只读(read-only)状态。

#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)

defaultReadOnly=#driverdefault指定由连接池所创建的连接的事务级别(TransactionIsolation)。

#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE

defaultTransactionIsolation=REPEATABLE_READ

> 3 编写数据源工具类

public classDBCPUtil {//得到数据源

private staticDataSource dataSource;static{try{

Properties pro= newProperties();

pro.load(DBCPUtil.class.getClassLoader().getResourceAsStream("dbcp.properties"));//得到连接池对象,同时获取配置文件中的信息给连接池对象使用

dataSource =BasicDataSourceFactory.createDataSource(pro);

}catch(Exception e) {throw new ExceptionInInitializerError("连接池初始化失败");

}

}//获取Connection对象的方法

public static Connection getConnection() throwsSQLException

{returndataSource.getConnection();

}//释放资源,这里的conn.close()是将连接对象放回连接池中,并不是销毁

public static voidrelease(Connection conn){if(conn!=null){try{

conn.close();

}catch(SQLException e) {

e.printStackTrace();

}

}}

}

C3P0

它是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

c3p0与dbcp区别:dbcp没有自动回收空闲连接的功能,c3p0有自动回收空闲连接功能。

使用步骤:

1、添加jar包  c3p0-0.9.1.2.jar,下载位置:http://www.oschina.net/p/c3p0,开源中国中有详细的下载地址。

2、编写配置文件c3p0-config.xml,文件名固定,不能更改,【C3P0百度百科】有详细配置信息,比较全。

com.mysql.jdbc.Driver

jdbc:mysql://127.0.0.1:3306/test

60

60

1000

0

30

2

0

200

10

1

0

3、编写工具类

public classC3P0Util {private static ComboPooledDataSource cpds = newComboPooledDataSource();private static int i=1;public staticComboPooledDataSource getCpds() {returncpds;

}public staticConnection getConnection(){

Connection conn=null;try{

conn=cpds.getConnection();}catch(SQLException e) {

e.printStackTrace();

}returnconn;

}public static voidclose(Connection ct){if(ct!=null){try{ct.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}

}

Tomcat内置连接池

开发JavaWeb应用,必须使用一个JavaWeb服务器,JavaWeb服务器都内置数据源。

数据源只需要配置服务器即可。

配置数据源的步骤:

1、拷贝【数据库连接的jar】到tomcat的lib目录下

2、配置数据源XML文件

a)如果把配置信息写在tomcat下的conf目录的context.xml中,那么所有应用都能使用此数据源。

b)如果是在当前应用的META-INF中创建context.xml,编写数据源,那么只有当前应用可以使用。

3、使用连接池

Context initContext = newInitialContext();

DataSource ds= (DataSource)initContext.lookup("java:comp/env/jdbc/test");

Connection conn= ds.getConnection();

JNDI:java nameing directory interface

JNDI容器就是一个Map

key(String)

value(Object)

path+name

对象

path+"jdbc/day16"

DataSource对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值