

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。 我现在做一个p3c0连接池的模板。 首先p3c0是开源的,所以去官网下载p3c0的jar包。在工程中导入,同时要下载你连接数据库的驱动 连接池模板代码如下: package com.fish
连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。
我现在做一个p3c0连接池的模板。
首先p3c0是开源的,所以去官网下载p3c0的jar包。在工程中导入,同时要下载你连接数据库的驱动
连接池模板代码如下:
package com.fish;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* 连接数据库的工具类,被定义成不可继承且是私有访问
*/
public final class DBTool {
//采用配置文件的方式配置连接池的一些信心,这个是配置文件的名字
final private static String OPTION_FILE_NAME = "mysqldatabase";
private static Connection conn;
static ResourceBundle res;
//连接池的类
static ComboPooledDataSource cpds;
static {
//从配置文件中获取文件
res = ResourceBundle.getBundle(OPTION_FILE_NAME);
//创建一个连接池
cpds = new ComboPooledDataSource();
//驱动名
String driver = res.getString("jdbc.driver");
//连接url
String url = res.getString("jdbc.url");
//数据库用户名
String user = res.getString("jdbc.username");
//数据库密码
String password = res.getString("jdbc.password");
//连接池的最大连接数
String poolMax = res.getString("c3p0.maxPoolSize");
//连接池的最小连接数
String poolMin = res.getString("c3p0.minPoolSize");
//当资源用尽时,允许连接的数目
String PoolAcquireIncrement = res.getString("c3p0.acquireIncrement");
try {
cpds.setDriverClass(driver);
} catch (PropertyVetoException e) {
System.out.println("驱动没找到");
}
cpds.setJdbcUrl(url);
cpds.setUser(user);
cpds.setPassword(password);
cpds.setMinPoolSize(Integer.parseInt(poolMin));
cpds.setAcquireIncrement(Integer.parseInt(PoolAcquireIncrement));
cpds.setMaxPoolSize(Integer.parseInt(poolMax));
}
/**
* 获取数据库的连接
*
* @return conn
*/
public static Connection getConnection() {
try {
conn = cpds.getConnection();
} catch (SQLException e) {
System.out.println("连接失败");
}
return conn;
}
/**
* 释放资源
*
*/
public static void closeJDBC(Connection conn, Statement statement,
ResultSet rs) {
if (null != rs) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
if (null != statement) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
if (null != conn) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
}
}
}
}
}2.mysqldatabase.properties文件如下:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/datacenter3
jdbc.username=root
jdbc.password=1234
c3p0.maxPoolSize = 30
c3p0.minPoolSize = 10
c3p0.acquireIncrement =10
以后你要连接什么数据库直接在这个文件里面修改。
测试:例子
package com.fish;
public class Test2 {
public static void main(String[] args) throws Exception {
System.out.println(DBTool.getConnection());
}
}
