java数据库连接池配置的几种方法

Python016

java数据库连接池配置的几种方法,第1张

数据库连接池的主要操作如下:

(1)建立数据库连接池对象(服务器启动)。

(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。

(3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。

(4)存取数据库。

(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。

(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。

是自己编的 可以引用 连接池思想就是这个啊

不过你可以下载 已经编好的连接池 上面有API 自己可以按照这个思想 就回用 了;

import java.io.FileInputStream

public class ConnectionPool{

private Vector<Connection>pool

private String url

private String username

private String password

private String driverClassName

// 连接池的大小,也就是连接池中有多少个数据库连接。

private int poolSize = 1

private static ConnectionPool instance =null

//私有的构造方法,禁止外部创建本类的对象。

// 使用了设计单子模式

private ConnectionPool(){

init()

}

// 返回当前连接池的一个对象

public static ConnectionPool getInstance(){

if(instance==null){

instance=new ConnectionPool()

}

return instance

}

//连接池初始化方法,读取属性文件的内容,建立连接池中的初始连接

private void init(){

pool= new Vector<Connection>(poolSize)

addConnection()

}

//返回连接到连接池中

public synchronized void release(Connection conn){

pool.add(conn)

}

// 关闭连接池中的所有数据库连接

public synchironized void closePool(){

for(int i=0i<pool.size()i++){

try{

((Connection)pool.get(i)).close()

}catch(SQLExcepiton e){

e.printStachTrace()

}

pool.remove(i)

}

}

/**

* 返回连接池中的一个数据库连接

*/

public synchronized Connection getConnection(){

if(pool.size()>0){

Connection conn = pool.get(0)

pool.remove(conn)

return conn

}else{

return null

}

}

// 在连接池中创建初始设置的的数据库连接

private void addConnection(){

Connection conn = null

for (int i=0i<poolSizei++){

try{

Class.forName(driverClassName)

conn=java.sql.Drivermanager.getConnection(url,username,password)

pool.add(conn)

}catch(ClassNotFoundException e){

e.printStachTrace()

}catch(){}

}

}

}