C3P0连接池
11.先导入jar包 2 * c3p0-0.9.1.2.jar 3 42.提供了类ComboPooledDataSource 5 * new ComboPooledDataSource() 6 * 设置4大参数 7 cpds.setDriverClass( "com.mysql.jdbc.Driver" ); 8 cpds.setJdbcUrl( "jdbc:mysql:///day16" ); 9 cpds.setUser("root"); 10 cpds.setPassword("root"); 11 123.编写C3P0的配置文件 13 * C3P0默认去自己去找XML的文件,XML文件名称是(c3p0-config.xml) 14 * 把配置文件放在src的目录下 15 164.编写配置文件内容 17 <?xml version="1.0" encoding="UTF-8"?> 18 <c3p0-config> 19 <default-config> 20 <!-- 配置4大参数 --> 21 <property name="driverClass">com.mysql.jdbc.Driver</property> 22 <property name="jdbcUrl">jdbc:mysql:///day16</property> 23 <property name="user">root</property> 24 <property name="password">root</property> 25 </default-config> 26 27 <named-config name="myoracle"> 28 <!-- 配置4大参数 --> 29 <property name="driverClass">com.mysql.jdbc.Driver</property> 30 <property name="jdbcUrl">jdbc:mysql:///day16</property> 31 <property name="user">root</property> 32 <property name="password">root</property> 33 </named-config> 34 </c3p0-config> 35 36 375.代码 38 package cn.itcast.c3p0; 39 40 import java.sql.Connection; 41 import java.sql.PreparedStatement; 42 43 import org.junit.Test; 44 45 import com.mchange.v2.c3p0.ComboPooledDataSource; 46 47 import cn.itcast.utils.MyJdbcUtil; 48 49 /** 50 * 测试C3P0连接池 51 * @author Administrator 52 */ 53 public class C3p0Demo { 54 55 @Test 56 public void run1(){ 57 Connection conn = null; 58 PreparedStatement stmt = null; 59 try { 60 // 现在使用的是C3P0连接池 61 ComboPooledDataSource dataSource = new ComboPooledDataSource(); 62 // 设置4大参数 63 dataSource.setDriverClass("com.mysql.jdbc.Driver"); 64 dataSource.setJdbcUrl("jdbc:mysql:///day16"); 65 dataSource.setUser("root"); 66 dataSource.setPassword("root"); 67 68 // 可以获取连接 69 conn = dataSource.getConnection(); 70 // 剩下的操作,JDBC的操作 71 String sql = "update t_account set money = 300 where username = ?"; 72 // 预编译SQL 73 stmt = conn.prepareStatement(sql); 74 // 设置参数 75 stmt.setString(1, "美美"); 76 // 执行 77 stmt.executeUpdate(); 78 } catch (Exception e) { 79 e.printStackTrace(); 80 }finally{ 81 // 原来:释放资源,conn.close()销毁连接。 82 // 现在咱们已经使用了数据库的连接池了 conn.close()方法不是销毁了,是归还连接了。 83 MyJdbcUtil.release(conn, stmt); 84 } 85 } 86 87 /** 88 * 读取配置文件 89 * 把c3p0-conf.xml文件放在src目录下 90 * 程序默认的自动的读取该文件 91 */ 92 @Test 93 public void run2(){ 94 Connection conn = null; 95 PreparedStatement stmt = null; 96 try { 97 // 现在使用的是C3P0连接池 98 ComboPooledDataSource dataSource = new ComboPooledDataSource(); 99 100 // 可以获取连接 101 conn = dataSource.getConnection(); 102 // 剩下的操作,JDBC的操作 103 String sql = "update t_account set money = 600 where username = ?"; 104 // 预编译SQL 105 stmt = conn.prepareStatement(sql); 106 // 设置参数 107 stmt.setString(1, "美美"); 108 // 执行 109 stmt.executeUpdate(); 110 } catch (Exception e) { 111 e.printStackTrace(); 112 }finally{ 113 // 原来:释放资源,conn.close()销毁连接。 114 // 现在咱们已经使用了数据库的连接池了 conn.close()方法不是销毁了,是归还连接了。 115 MyJdbcUtil.release(conn, stmt); 116 } 117 } 118 }