C3P0连接池:
最常用的连接池技术!Spring框架,默认支持C3P0连接池技术!
C3P0连接池,核心类:
CombopooledDataSource ds;
使用:
- 下载,引入jar文件: c3p0-0.9.1.2.jar
- 使用连接池,创建连接
a) 硬编码方式
b) 配置方式(xml)
packagecom.loaderman.demo.d_c3p0; importjava.sql.Connection; importjava.sql.PreparedStatement; importorg.junit.Test; importcom.mchange.v2.c3p0.ComboPooledDataSource; public classApp { @Test //1. 硬编码方式,使用C3P0连接池管理连接 public void testCode() throwsException { //创建连接池核心工具类 ComboPooledDataSource dataSource = newComboPooledDataSource(); //设置连接参数:url、驱动、用户密码、初始连接数、最大连接数 dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/jdbc_demo"); dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setUser("root"); dataSource.setPassword("root"); dataSource.setInitialPoolSize(3); dataSource.setMaxPoolSize(6); dataSource.setMaxIdleTime(1000); //---> 从连接池对象中,获取连接对象 Connection con =dataSource.getConnection(); //执行更新 con.prepareStatement("delete from admin where id=7").executeUpdate(); //关闭 con.close(); } @Test //2. XML配置方式,使用C3P0连接池管理连接 public void testXML() throwsException { //创建c3p0连接池核心工具类 //自动加载src下c3p0的配置文件【c3p0-config.xml】 ComboPooledDataSource dataSource = new ComboPooledDataSource();//使用默认的配置 PreparedStatement pstmt = null; //获取连接 Connection con =dataSource.getConnection(); for (int i=1; i<11;i++){ String sql = "insert into employee(empName,dept_id) values(?,?)"; //执行更新 pstmt =con.prepareStatement(sql); pstmt.setString(1, "Rose" +i); pstmt.setInt(2, 1); pstmt.executeUpdate(); } pstmt.close(); //关闭 con.close(); } }
c3p0-config.xml
<c3p0-config> <default-config> <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc_demo </property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">root</property> <property name="initialPoolSize">3</property> <property name="maxPoolSize">6</property> <property name="maxIdleTime">1000</property> </default-config> <named-config name="oracle_config"> <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc_demo</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">root</property> <property name="initialPoolSize">3</property> <property name="maxPoolSize">6</property> <property name="maxIdleTime">1000</property> </named-config> </c3p0-config>