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

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

你可能感兴趣的:(java,mysql,数据库,c3p0,jdbc)