架构设计
870
C3P0连接池
1.先导入jar包 * c3p0-0.9.1.2.jar 2.提供了类ComboPooledDataSource * new ComboPooledDataSource() * 设置4大参数 cpds.setDriverClass( "com.mysql.jdbc.Driver" ); cpds.setJdbcUrl( "jdbc:mysql:///day16" ); cpds.setUser("root"); cpds.setPassword("root"); 3.编写C3P0的配置文件 * C3P0默认去自己去找XML的文件,XML文件名称是(c3p0-config.xml) * 把配置文件放在src的目录下 4.编写配置文件内容 <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <!-- 配置4大参数 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql:///day16</property> <property name="user">root</property> <property name="password">root</property> </default-config> <named-config name="myoracle"> <!-- 配置4大参数 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql:///day16</property> <property name="user">root</property> <property name="password">root</property> </named-config> </c3p0-config> 5.代码 package cn.itcast.c3p0; import java.sql.Connection; import java.sql.PreparedStatement; import org.junit.Test; import com.mchange.v2.c3p0.ComboPooledDataSource; import cn.itcast.utils.MyJdbcUtil; /** * 测试C3P0连接池 * @author Administrator */ public class C3p0Demo { @Test public void run1(){ Connection conn = null; PreparedStatement stmt = null; try { // 现在使用的是C3P0连接池 ComboPooledDataSource dataSource = new ComboPooledDataSource(); // 设置4大参数 dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql:///day16"); dataSource.setUser("root"); dataSource.setPassword("root"); // 可以获取连接 conn = dataSource.getConnection(); // 剩下的操作,JDBC的操作 String sql = "update t_account set money = 300 where username = ?"; // 预编译SQL stmt = conn.prepareStatement(sql); // 设置参数 stmt.setString(1, "美美"); // 执行 stmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally{ // 原来:释放资源,conn.close()销毁连接。 // 现在咱们已经使用了数据库的连接池了 conn.close()方法不是销毁了,是归还连接了。 MyJdbcUtil.release(conn, stmt); } } /** * 读取配置文件 * 把c3p0-conf.xml文件放在src目录下 * 程序默认的自动的读取该文件 */ @Test public void run2(){ Connection conn = null; PreparedStatement stmt = null; try { // 现在使用的是C3P0连接池 ComboPooledDataSource dataSource = new ComboPooledDataSource(); // 可以获取连接 conn = dataSource.getConnection(); // 剩下的操作,JDBC的操作 String sql = "update t_account set money = 600 where username = ?"; // 预编译SQL stmt = conn.prepareStatement(sql); // 设置参数 stmt.setString(1, "美美"); // 执行 stmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally{ // 原来:释放资源,conn.close()销毁连接。 // 现在咱们已经使用了数据库的连接池了 conn.close()方法不是销毁了,是归还连接了。 MyJdbcUtil.release(conn, stmt); } } }
广告