用jdbc连接mysql数据库(c3p0连接池篇)

本文介绍了一个基于c3p0的Java数据库连接池实现,通过组合配置文件和Java代码,实现了数据库连接的高效管理和资源释放。具体包括连接池的初始化配置、连接获取方法及资源关闭流程。

package cn.lfd.Utils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class JdbcUtils_c3p0 {
	private static ComboPooledDataSource ds;
	
	static{
		 ds = new ComboPooledDataSource("lfd");//读取配置文件中名字为lfd的配置,不写的话读取默认配置
	}
	
	//从数据源中获取连接
	public static Connection getConnection() throws SQLException {
		return ds.getConnection();
	}
	
	//释放资源
	public static void release(Connection conn, Statement st, ResultSet rs) {
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}finally{
				if(st!=null) {
					try {
						st.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}finally{
						if(rs!=null) {
							try {
								rs.close();
							} catch (SQLException e) {
								e.printStackTrace();
							}
						}
					}
				}
			}
		}
	}
}

c3p0-config.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
 <default-config>  <!--默认配置 -->
 <property name="driverClass">com.mysql.jdbc.Driver</property>
 <property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
 <property name="user">root</property>
 <property name="password">root</property>
 <property name="automaticTestTable">con_test</property> 
<property name="checkoutTimeout">30000</property> 
<property name="idleConnectionTestPeriod">30</property> 
<property name="initialPoolSize">20</property> 
<property name="maxIdleTime">30</property> 
<property name="maxPoolSize">30</property> 
<property name="minPoolSize">10</property>
 <property name="maxStatements">200</property>
 <user-overrides user="test-user"> 
<property name="maxPoolSize">10</property> 
<property name="minPoolSize">1</property> 
<property name="maxStatements">0</property>
 </user-overrides> 
</default-config> 
<!-- This app is massive! -->

 <named-config name="lfd">    <!--名称为lfd的配置 ,自己可以自定义设置-->
 <property name="driverClass">com.mysql.jdbc.Driver</property>
 <property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
 <property name="user">root</property>
 <property name="password">root</property>
 <property name="initialPoolSize">20</property>
 <property name="minPoolSize">5</property>
 <property name="maxPoolSize">30</property> 
<!-- intergalactoApp adopts a different approach to configuring statement caching -->
<property name="maxStatements">0</property> 
<property name="maxStatementsPerConnection">5</property>
 <!-- he's important, but there's only one of him --> 
<user-overrides user="master-of-the-universe"> 
<property name="acquireIncrement">1</property>
 <property name="initialPoolSize">1</property> 
<property name="minPoolSize">1</property>
 <property name="maxPoolSize">5</property> 
<property name="maxStatementsPerConnection">50</property> 
</user-overrides> 
</named-config>
</c3p0-config>
注意事项:

1.c3p0-config.xml文件必须放在src目录下

2.需要的jar包:   c3p0-0.9.1.2.jar      mchange-commons-java-0.2.3.4.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值