package com.qk.common.database;
/**
* Created with IntelliJ IDEA.
* User: Administrator
* Date: 13-7-31
* Time: 下午6:57
* To change this template use File | Settings | File Templates.
*/
import java.io.IOException;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import snaq.db.ConnectionPool;
public class DBConnectionPool {
public static ConnectionPool pools;
public DBConnectionPool() {
}
/**
* 静态初始化, 加载数据库驱动, 构建连接池等
*/
static {
String driverClass = "oracle.jdbc.driver.OracleDriver";
try {
//加载数据库驱动
Class c = Class.forName(driverClass);
Driver driver = (Driver) c.newInstance();
/*
注册数据库驱动
*/
DriverManager.registerDriver(driver);
Properties prop = new Properties();
//配置文件名为 db.properties 其格式是键值对的形式
//即url=xxxx user=xxxx 这样的形式 不过注意每个键/值对写在新的一行
prop.load(DBConnectionPool.class.getResourceAsStream("config/db.properties"));
//取得连接的url, user 及 password
String url = prop.getProperty("url");
String user = prop.getProperty("user");
String password = prop.getProperty("password");
/**
* 设置连接池的 名字 最小连接数量 最大连接数量 池的大小 超时 连接数据库时的 URL, USER 与 PASSWORD
* 最小 最大连接数量: 如果当前池中的连接数量小于最小数量, 或创建几个新的连接以达到最小连接数量
* 同理, 如果达到最大连接数量, 或关闭连接
* 应该有这样的关系 minPool <= maxPool <= maxSize
* pools = new ConnectionPool("dbSeekHandler", 3, 30, 50, 90, url, user, password);
*
*/
pools = new ConnectionPool("dbSeekHandler", 3, 30, 50, 90, url, user, password);
System.out.println("数据库连接池创建成功");
} catch (ClassNotFoundException e) {
System.out.println("加载数据库驱动失败!");
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
System.out.println("打开文件失败!");
e.printStackTrace();
}
}
}
基于DBPool的数据库连接池
最新推荐文章于 2021-02-24 10:10:00 发布