JDBC连接池C3P0(一):使用xml文件进行配置

本文介绍了如何使用XML文件配置C3P0连接池,包括创建名为c3p0-config.xml的配置文件,设置两个数据源(MySQL和SQL Server),并提供了连接测试的类及所需jar包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在src下新建c3p0-config.xml,名字不能改只能是这个,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>  
    <default-config>  
        <property name="user">root</property>  
        <property name="password">root</property>  
        <property name="driverClass">com.mysql.jdbc.Driver</property>  
        <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/test</property>  
        <!-- 连接池初始化时建立的连接数 默认值是3 -->  
        <property name="initialPoolSize">3</property> 
         
        <!-- 连接的最大空闲时间  单位秒 默认是0-代表永远不会断开连接  超过设定时间的空闲连接将会断开 -->  
        <property name="maxIdleTime">30</property> 
         
        <!-- 连接池中拥有的最大连接数 默认值为15个 -->  
        <property name="maxPoolSize">20</property>  
        
        <!-- 连接池中保持的最小连接数  默认值为3个-->  
        <property name="minPoolSize">3</property> 
         
        <!-- 将连接池的连接数保持在minpoolsize 必须小于maxIdleTime设置  默认值为0代表不处理  单位秒 -->  
        <property name="maxIdleTimeExcessConnections">15</property>  
    </default-config>
    
    <!-- SQLServer数据库 测试用 -->
    <named-config name="sqlserver">  
        <property name="user">sa</property>  
        <property name="password">sa</property>  
        <property name="driverClass">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>  
        <property name="jdbcUrl">jdbc:sqlserver://127.0.0.1:1433;databaseName=test</property>  
        <property name="initialPoolSize">3</property> 
        <property name="maxIdleTime">30</property> 
        <property name="maxPoolSize">20</property>  
        <property name="minPoolSize">3</property> 
        <property name="maxIdleTimeExcessConnections">15</property>  
    </named-config>    
</c3p0-config>

我这里建了两个数据源:第一个是默认的数据源MySQL,第二个是自己指定名称的数据源sqlserver。两者如何使用第二步中有介绍。

 

2、新建类进行连接测试

public class DBConnectionByC3P0ForXML {
	private static ComboPooledDataSource cpds = null;
	//私有构造方法,不能创建对象  
    private DBConnectionByC3P0ForXML() {}
    
	//加载数据库连接的配置文件和驱动
	static {
		// 这里有个优点,写好配置文件,想换数据库,简单
		//cpds = new ComboPooledDataSource();// 这是默认的mysql数据库
		cpds = new ComboPooledDataSource("sqlserver");//sqlserver数据库
	}
    
	//获取连接对象
	public static Connection getConnection() throws SQLException {
		return cpds.getConnection();
	}
	
	//获取数据源
    public static DataSource getDataSource() {
        return cpds;
    }
	
	private static Integer counter = 0;
	public static void main(String[] args){
		for (int i = 1; i <= 20; i++) {
			new Thread(new Runnable() {
				public void run() {
					Connection conn = null;
					try {
						conn = DBConnectionByC3P0ForXML.getConnection();
						synchronized (counter) {
							System.out.print(Thread.currentThread().getName());
							System.out.print("counter=" +(counter++)+ "\tconn="+conn);
							System.out.println();
							conn.prepareStatement("select * from s_user");
							conn.close();
						}
					} catch (SQLException e) {
						e.printStackTrace();
					}  
				}
			}).start();
		}
	}
}

主要jar包:c3p0-0.9.2-pre4.jar、mchange-commons-java-0.2.2.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值