(1)建立数据库连接池对象(服务器启动)。
(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。
(3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。
(4)存取数据库。
(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。
(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。
用c3po来创建数据库连接池,1.到网络上下载c3p0-0.9.0.4.jar包,导入工程;(注意以下方法只能用于web服务).
2.找出web服务器中conf目录下的centent.xml,在里面加上以下配置
<Resource auth="Container"
description="DB Connection"
driverClass="com.mysql.jdbc.Driver"
maxPoolSize="4"
minPoolSize="2"
acquireIncrement="1"
name="jdbc/TestDB"
user="root"
password="root"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="jdbc:mysql://localhost:3306/自己的数据库名?autoReconnect=true" />
3.java获取连接池的代码;
import java.sql.Connection
import java.sql.SQLException
import javax.naming.InitialContext
import javax.naming.NamingException
import javax.sql.DataSource
public class DBUtils {
static InitialContext ic
static DataSource ds
static{
try {
ic = new InitialContext()
ds = (DataSource)ic.lookup("java:comp/env/jdbc/TestDB")
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
public static Connection getCon() {
try {
return ds.getConnection()
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace()
return null
}
}
}
通过以上代码,即可获取连接池中的连接.