连接池:
连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要他们的线程使用
C3P0连接池
手动设置连接池
public void demo1() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rSet = null;
try {
//创建连接池
ComboPooledDataSource dataSource = new ComboPooledDataSource();
//设置连接池相关参数
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql:///jdbctest");
dataSource.setUser("root");
dataSource.setPassword("123456");
dataSource.setMaxPoolSize(20);
dataSource.setInitialPoolSize(3);
//获得连接
conn = (Connection)dataSource.getConnection();
//编写SQL
String sql = "select * from user";
//预编译SQL
pstmt = (PreparedStatement)conn.prepareStatement(sql);
//执行SQL
rSet = pstmt.executeQuery();
while(rSet.next()) {
System.out.println(rSet.getInt("uid") + " "+ rSet.getString("username")+ " "+rSet.getString("password")+" "+rSet.getString("name"));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtils.releaseP(pstmt, conn, rSet);
}
}
使用配置文件设置连接池。注意:配置文件为/jdbc/src/c3p0-config.xml
配置文件内容
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///jdbctest</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">20</property>
</default-config>
</c3p0-config>
使用配置文件创建线程池
@Test
/**
* 使用配置文件的方式
*/
public void demo2() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rSet = null;
try {
// //获得连接:
// ComboPooledDataSource dataSource = new ComboPooledDataSource();
// //获得连接
// conn = (Connection)dataSource.getConnection();
conn = JDBCUtils2.getConnection();
//编写SQL
String sql = "select * from user";
//预编译SQL
pstmt = (PreparedStatement)conn.prepareStatement(sql);
//执行SQL
rSet = pstmt.executeQuery();
while(rSet.next()) {
System.out.println(rSet.getInt("uid") + " "+ rSet.getString("username")+ " "+rSet.getString("password")+" "+rSet.getString("name"));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtils2.releaseP(pstmt, conn, rSet);
}
}
将新建线程池封装为工具类
private static final ComboPooledDataSource DATA_SOURCE = new ComboPooledDataSource();
/**
* 获得连接的方法
* @throws Exception
*/
public static Connection getConnection() throws Exception {
Connection conn = (Connection) DATA_SOURCE.getConnection();
return conn;
}
338

被折叠的 条评论
为什么被折叠?



