c3p0连接池
        【摘要】 
                    c3p0连接池 
  
一、创建c3p0链接 
1、创建配置文件,配置文件的路径必须在classPath路径。配置文件的名称必须是 c3p0-config.xml 
2、配置文件实例截图如下: 
 
  
3、配置文件内容: 
<?xml version="1.0" encoding="UTF-8"?><c3p0-c...
    
    
    
    c3p0连接池
 
一、创建c3p0链接
1、创建配置文件,配置文件的路径必须在classPath路径。配置文件的名称必须是 c3p0-config.xml
2、配置文件实例截图如下:

 
3、配置文件内容:
  
   - 
    
     
    
    
     
      <?xml version="1.0" encoding="UTF-8"?>
     
    
 
   - 
    
     
    
    
     
      <c3p0-config><!-- 配置的根元素 -->
     
    
 
   - 
    
     
    
    
     	<!-- 默认配置,如果没有指定则使用这个配置 -->
     
    
 
   - 
    
     
    
    
     	<default-config>
     
    
 
   - 
    
     
    
    
     		<!-- 连接的超时间时间,以秒 -->
     
    
 
   - 
    
     
    
    
     		<property name="checkoutTimeout">3000</property>
     
    
 
   - 
    
     
    
    
     		<!-- 空闲检查间隔,检查是否connection没有人用 -->
     
    
 
   - 
    
     
    
    
     		<property name="idleConnectionTestPeriod">1000</property>
     
    
 
   - 
    
     
    
    
     		<!-- 初始化的池大小 -->
     
    
 
   - 
    
     
    
    
     		<property name="initialPoolSize">3</property>
     
    
 
   - 
    
     
    
    
     		<!-- 最多有几个连接 -->
     
    
 
   - 
    
     
    
    
     		<property name="maxPoolSize">5</property>
     
    
 
   - 
    
     
    
    
     		<!-- 最少有几个连接 -->
     
    
 
   - 
    
     
    
    
     		<property name="minPoolSize">3</property>
     
    
 
   - 
    
     
    
    
     		<property name="autoCommitOnClose">true</property>
     
    
 
   - 
    
     
    
    
     		<!-- 如果池中数据连接不够时一次增长多少个 -->
     
    
 
   - 
    
     
    
    
     		<property name="acquireIncrement">2</property>
     
    
 
   - 
    
     
    
    
     		<!-- connection最大的空闲时间 -->
     
    
 
   - 
    
     
    
    
     		<property name="maxIdleTime">1000</property>
     
    
 
   - 
    
     
    
    
     		<!-- 
     
    
 
   - 
    
     
    
    
     
       connection是从java代码到数据库的连接。所有statement都在上面传递sql语句。
     
    
 
   - 
    
     
    
    
     
       那到这个connectoin最多可以同时让多少statement在上面传递数据呢?
     
    
 
   - 
    
     
    
    
     
       -->
     
    
 
   - 
    
     
    
    
     		<property name="maxStatements">50</property>
     
    
 
   - 
    
     
    
    
     		<!-- 以下连接信息 -->
     
    
 
   - 
    
     
    
    
     		<property name="driverClass">com.mysql.jdbc.Driver</property>
     
    
 
   - 
    
     
    
    
     		<property name="jdbcUrl">
     
    
 
   - 
    
     
    
    
     
      			<![CDATA[jdbc:mysql://127.0.0.1:3306/long1?useUnicode=true&characterEncoding=UTF-8]]>
     
    
 
   - 
    
     
    
    
     		</property>
     
    
 
   - 
    
     
    
    
     		<property name="user">root</property>
     
    
 
   - 
    
     
    
    
     		<property name="password">123456</property>
     
    
 
   - 
    
     
    
    
     	</default-config> 
     
    
 
   - 
    
     
    
    
     	<named-config name="myconfig">
     
    
 
   - 
    
     
    
    
     		<!-- 以下连接信息 -->
     
    
 
   - 
    
     
    
    
     		<property name="driverClass">com.mysql.jdbc.Driver</property>
     
    
 
   - 
    
     
    
    
     		<property name="jdbcUrl">
     
    
 
   - 
    
     
    
    
     
      			<![CDATA[jdbc:mysql://127.0.0.1:3306/long1?useUnicode=true&characterEncoding=UTF-8]]>
     
    
 
   - 
    
     
    
    
     		</property>
     
    
 
   - 
    
     
    
    
     		<property name="user">root</property>
     
    
 
   - 
    
     
    
    
     		<property name="password">123456</property>
     
    
 
   - 
    
     
    
    
     	</named-config>
     
    
 
   - 
    
     
    
    
     
      </c3p0-config> 
     
    
 
  
 
4、创建c3p0连接池实例
  
   - 
    
     
    
    
     
      package com.test.c3p0;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import java.sql.Connection;
     
    
 
   - 
    
     
    
    
     
      import java.sql.SQLException;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import javax.sql.DataSource;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import com.mchange.v2.c3p0.ComboPooledDataSource;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      public class C3p0Create {
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	//1、申明一个datasource变量
     
    
 
   - 
    
     
    
    
     	private static DataSource datasource;
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	//2、获取c3p0链接池对象
     
    
 
   - 
    
     
    
    
     	static{
     
    
 
   - 
    
     
    
    
     		//以下实例化comboPooledDataSource默认读取classpath下的c3p0-config.xml
     
    
 
   - 
    
     
    
    
     		//可以接收一个字符串,说明连接c3p0-config.xml中的哪一个命名的连接
     
    
 
   - 
    
     
    
    
     
      		datasource = new ComboPooledDataSource();
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	//3、创建DataSource和Connection两个连接池的方法
     
    
 
   - 
    
     
    
    
     	public static DataSource getDataSource(){
     
    
 
   - 
    
     
    
    
     		return datasource;
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     	
     
    
 
   - 
    
     
    
    
     	public static Connection getConnection(){
     
    
 
   - 
    
     
    
    
     		Connection con = null;
     
    
 
   - 
    
     
    
    
     		try {
     
    
 
   - 
    
     
    
    
     
      			con = datasource.getConnection();
     
    
 
   - 
    
     
    
    
     
      		} catch (SQLException e) {
     
    
 
   - 
    
     
    
    
     			
     
    
 
   - 
    
     
    
    
     
      			e.printStackTrace();
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     		return con;
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     
      }
     
    
 
  
 
二、测试获取连接池,操作数据库
  
   - 
    
     
    
    
     
      package com.test.test;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import java.sql.SQLException;
     
    
 
   - 
    
     
    
    
     
      import java.util.List;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import org.apache.commons.dbutils.QueryRunner;
     
    
 
   - 
    
     
    
    
     
      import org.apache.commons.dbutils.handlers.ArrayListHandler;
     
    
 
   - 
    
     
    
    
     
      import org.junit.Test;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      import com.test.c3p0.C3p0Create;
     
    
 
   - 
    
     
    
    
      
     
    
 
   - 
    
     
    
    
     
      public class C3p0Test {
     
    
 
   - 
    
     
    
    
     	/*
     
    
 
   - 
    
     
    
    
     
       * 测试获取C3p0连接池
     
    
 
   - 
    
     
    
    
     
       * 
     
    
 
   - 
    
     
    
    
     
       */
     
    
 
   - 
    
     
    
    
     	@Test
     
    
 
   - 
    
     
    
    
     	public void query() throws SQLException{
     
    
 
   - 
    
     
    
    
     		//1、申明QueryRunner对象执行SQL语句
     
    
 
   - 
    
     
    
    
     		QueryRunner run = new QueryRunner(C3p0Create.getDataSource());
     
    
 
   - 
    
     
    
    
     
      		System.out.println(run);
     
    
 
   - 
    
     
    
    
     
      		System.out.println(C3p0Create.getDataSource());
     
    
 
   - 
    
     
    
    
     		
     
    
 
   - 
    
     
    
    
     		
     
    
 
   - 
    
     
    
    
     		//2、查询语句
     
    
 
   - 
    
     
    
    
     		String sql = "select * from student";
     
    
 
   - 
    
     
    
    
     		
     
    
 
   - 
    
     
    
    
     		
     
    
 
   - 
    
     
    
    
     		//3、执行sql语句
     
    
 
   - 
    
     
    
    
     
      		List<Object[]> list = run.query(sql, new ArrayListHandler());
     
    
 
   - 
    
     
    
    
     		
     
    
 
   - 
    
     
    
    
     		
     
    
 
   - 
    
     
    
    
     		//4、遍历结果集
     
    
 
   - 
    
     
    
    
     
      		System.out.println("c3p0链接查询结果:");
     
    
 
   - 
    
     
    
    
     		for(Object[] ls:list){
     
    
 
   - 
    
     
    
    
     
      			System.out.println("\n");
     
    
 
   - 
    
     
    
    
     			for(Object l:ls){
     
    
 
   - 
    
     
    
    
     
      				System.out.println(l);
     
    
 
   - 
    
     
    
    
     
      			}
     
    
 
   - 
    
     
    
    
     
      		}
     
    
 
   - 
    
     
    
    
     
      	}
     
    
 
   - 
    
     
    
    
     
      }
     
    
 
  
 
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/78085145
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)